<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>217780</bug_id>
          
          <creation_ts>2020-10-15 13:52:39 -0700</creation_ts>
          <short_desc>Add stubs for SpeechRecognition</short_desc>
          <delta_ts>2020-10-21 15:16:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698260</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 13:52:39 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698261</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 13:52:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/70350727&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698263</commentid>
    <comment_count>2</comment_count>
      <attachid>411483</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 13:57:09 -0700</bug_when>
    <thetext>Created attachment 411483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698268</commentid>
    <comment_count>3</comment_count>
      <attachid>411484</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 14:00:08 -0700</bug_when>
    <thetext>Created attachment 411484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698270</commentid>
    <comment_count>4</comment_count>
      <attachid>411485</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 14:03:05 -0700</bug_when>
    <thetext>Created attachment 411485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698310</commentid>
    <comment_count>5</comment_count>
      <attachid>411497</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 15:11:27 -0700</bug_when>
    <thetext>Created attachment 411497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698440</commentid>
    <comment_count>6</comment_count>
      <attachid>411524</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 19:47:22 -0700</bug_when>
    <thetext>Created attachment 411524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698454</commentid>
    <comment_count>7</comment_count>
      <attachid>411528</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 20:33:03 -0700</bug_when>
    <thetext>Created attachment 411528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698466</commentid>
    <comment_count>8</comment_count>
      <attachid>411532</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 21:25:29 -0700</bug_when>
    <thetext>Created attachment 411532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698474</commentid>
    <comment_count>9</comment_count>
      <attachid>411532</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-15 22:22:58 -0700</bug_when>
    <thetext>Comment on attachment 411532
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411532&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +

Based on https://wicg.github.io/speech-api/#speechreco-section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698501</commentid>
    <comment_count>10</comment_count>
      <attachid>411532</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 01:37:41 -0700</bug_when>
    <thetext>Comment on attachment 411532
Patch

Overall looks good.
Two main comments:
- We might want to add a setting to disable the feature until ready.
- We might want to add some tests for this patch. It seems we could already do a lot of checks like WebIDL.

View in context: https://bugs.webkit.org/attachment.cgi?id=411532&amp;action=review

&gt; Source/WebCore/Modules/speech/DOMWindow+SpeechRecognition.idl:31
&gt; +    [ImplementedAs=speechRecognition] readonly attribute SpeechRecognition webkitSpeechRecognition;

Why webkitSpeechRecognition and not speechRecognition?
This is probably not as per spec.

Also, it might be good to add a runtime flag.

&gt; Source/WebCore/Modules/speech/DOMWindowSpeechRecognition.cpp:81
&gt; +    if (page-&gt;isClosing())

Could be if (!page || page-&gt;isClosing())
I do not see those checks though in some other DOMWindow supplements.
Why are we adding them?

&gt; Source/WebCore/Modules/speech/DOMWindowSpeechRecognition.h:31
&gt; +#include &quot;SpeechRecognition.h&quot;

It seems we could forward declare SpeechRecognition

&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:46
&gt; +    return adoptRef(*new SpeechRecognition(document));

Should we add a call to suspendIfNeeded?

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:58
&gt; +    void stop();

There might be a name conflict with ActiveDOMObject stop() that we might want to implement in the future.
Maybe we should name it stopRecognition and startRecognition as well.

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:86
&gt; +    const char* activeDOMObjectName() const;

I would add // ActiveDOMObject.
Should be final.
What is our plan for suspend/resume?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.cpp:37
&gt; +Ref&lt;SpeechRecognitionAlternative&gt; SpeechRecognitionAlternative::create(const String&amp; transcript, double confidence)

Could be String&amp;&amp; here and constructor

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:31
&gt; +#include &lt;wtf/RefCounted.h&gt;

Might require &lt;wtf/text/WTFString.h&gt; ?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:46
&gt; +    Optional&lt;SpeechRecognitionErrorType&gt; type;

Why Optional? Should we add a general/unknown error instead?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:39
&gt; +    WEBCORE_EXPORT static Ref&lt;SpeechRecognitionRequest&gt; create(SpeechRecognitionClient*, const String&amp; lang, bool continuous, bool interimResults, uint64_t maxAlternatives);

Can we pass a SpeechRecognitionClient&amp;?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:42
&gt; +    SpeechRecognitionClient* client() const { return m_client.get(); }
&gt; +    SpeechRecognitionRequestData data() const { return m_data; }

const SpeechRecognitionRequestData&amp;

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestData.h:32
&gt; +#include &quot;SpeechRecognitionClient.h&quot;

Is this one needed?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestData.h:39
&gt; +*/

To remove?

&gt; Source/WebCore/page/SpeechRecognitionConnection.h:40
&gt; +    virtual void abort(SpeechRecognitionClient*) = 0;

SpeechRecognitionClient&amp; would be better.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:42
&gt; +void WebSpeechRecognitionConnection::start(WebCore::SpeechRecognitionClient* client, const String&amp; lang, bool continuous, bool interimResults, uint64_t maxAlternatives)

SpeechRecognitionClient&amp; here and below

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:46
&gt; +    processPendingRequest();

There is a SpeechRecognition/Client per document.
Does this mean that requests should be processed one-by-one on a per page scope or on a per document scope?
It seems this is per page now but I want to confirm this is the right approach.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:42
&gt; +class WebSpeechRecognitionConnection : public WebCore::SpeechRecognitionConnection {

final?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:45
&gt; +    WebSpeechRecognitionConnection(WebPage&amp;);

explicit

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:49
&gt; +    void abort(WebCore::SpeechRecognitionClient*) final;

Can be all private?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:60
&gt; +    Deque&lt;RefPtr&lt;WebCore::SpeechRecognitionRequest&gt;&gt; m_pendingRequests;

Deque&lt;Ref&lt;&gt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698683</commentid>
    <comment_count>11</comment_count>
      <attachid>411532</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-16 11:09:27 -0700</bug_when>
    <thetext>Comment on attachment 411532
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411532&amp;action=review

&gt;&gt; Source/WebCore/Modules/speech/DOMWindow+SpeechRecognition.idl:31
&gt;&gt; +    [ImplementedAs=speechRecognition] readonly attribute SpeechRecognition webkitSpeechRecognition;
&gt; 
&gt; Why webkitSpeechRecognition and not speechRecognition?
&gt; This is probably not as per spec.
&gt; 
&gt; Also, it might be good to add a runtime flag.

Some sites are using webkit prefix version as it&apos;s what originally supported by Blink, so I just added it here. Will add a comment.

Sure, will add a runtime flag.

&gt;&gt; Source/WebCore/Modules/speech/DOMWindowSpeechRecognition.cpp:81
&gt;&gt; +    if (page-&gt;isClosing())
&gt; 
&gt; Could be if (!page || page-&gt;isClosing())
&gt; I do not see those checks though in some other DOMWindow supplements.
&gt; Why are we adding them?

I may get this from storage code. Taking a deeper look now we may not need this, as long as we stop processing requests correctly when objects are destroyed, so will remove.

&gt;&gt; Source/WebCore/Modules/speech/DOMWindowSpeechRecognition.h:31
&gt;&gt; +#include &quot;SpeechRecognition.h&quot;
&gt; 
&gt; It seems we could forward declare SpeechRecognition

Sure, will move.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.cpp:46
&gt;&gt; +    return adoptRef(*new SpeechRecognition(document));
&gt; 
&gt; Should we add a call to suspendIfNeeded?

Yes based on the test failure. Will add.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:58
&gt;&gt; +    void stop();
&gt; 
&gt; There might be a name conflict with ActiveDOMObject stop() that we might want to implement in the future.
&gt; Maybe we should name it stopRecognition and startRecognition as well.

Okay, will rename.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:86
&gt;&gt; +    const char* activeDOMObjectName() const;
&gt; 
&gt; I would add // ActiveDOMObject.
&gt; Should be final.
&gt; What is our plan for suspend/resume?

I did not consider about this. Looks like we can abort outstanding request when suspending.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.cpp:37
&gt;&gt; +Ref&lt;SpeechRecognitionAlternative&gt; SpeechRecognitionAlternative::create(const String&amp; transcript, double confidence)
&gt; 
&gt; Could be String&amp;&amp; here and constructor

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:31
&gt;&gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; 
&gt; Might require &lt;wtf/text/WTFString.h&gt; ?

Why?

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionError.h:46
&gt;&gt; +    Optional&lt;SpeechRecognitionErrorType&gt; type;
&gt; 
&gt; Why Optional? Should we add a general/unknown error instead?

Optional here is to decide if this is an error or not... no type means no error. 
As I consider about this now, maybe I should use Optional&lt;SpeechRecognitionError&gt; to check if there is an error, instead of asking SpeechRecognitionError.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:39
&gt;&gt; +    WEBCORE_EXPORT static Ref&lt;SpeechRecognitionRequest&gt; create(SpeechRecognitionClient*, const String&amp; lang, bool continuous, bool interimResults, uint64_t maxAlternatives);
&gt; 
&gt; Can we pass a SpeechRecognitionClient&amp;?

Sure.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequest.h:42
&gt;&gt; +    SpeechRecognitionRequestData data() const { return m_data; }
&gt; 
&gt; const SpeechRecognitionRequestData&amp;

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestData.h:32
&gt;&gt; +#include &quot;SpeechRecognitionClient.h&quot;
&gt; 
&gt; Is this one needed?

Will check and remove if possible.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionRequestData.h:39
&gt;&gt; +*/
&gt; 
&gt; To remove?

oh I was about to add identifier to request so server and client can verify they are processing the same request.
This may not be necessary but nice to have. Will add.

&gt;&gt; Source/WebCore/page/SpeechRecognitionConnection.h:40
&gt;&gt; +    virtual void abort(SpeechRecognitionClient*) = 0;
&gt; 
&gt; SpeechRecognitionClient&amp; would be better.

Okay.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:42
&gt;&gt; +void WebSpeechRecognitionConnection::start(WebCore::SpeechRecognitionClient* client, const String&amp; lang, bool continuous, bool interimResults, uint64_t maxAlternatives)
&gt; 
&gt; SpeechRecognitionClient&amp; here and below

Okay.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:46
&gt;&gt; +    processPendingRequest();
&gt; 
&gt; There is a SpeechRecognition/Client per document.
&gt; Does this mean that requests should be processed one-by-one on a per page scope or on a per document scope?
&gt; It seems this is per page now but I want to confirm this is the right approach.

ah you&apos;ve pointed out a mistake I made! I revisited the document and found SpeechRecognition is not [SameObject]; it should be multiple SpeechRecognition/Clients per document. Will update that.

I think ultimately an app can only handle one speechrecognition request at a time (like mediarecorder with specified stream?), so maybe it&apos;s more appropriate to handle it one-by-one per process. 
I just followed SpeechSynthesis and make it per page. What do you think?

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:42
&gt;&gt; +class WebSpeechRecognitionConnection : public WebCore::SpeechRecognitionConnection {
&gt; 
&gt; final?

Okay.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:45
&gt;&gt; +    WebSpeechRecognitionConnection(WebPage&amp;);
&gt; 
&gt; explicit

sure.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:49
&gt;&gt; +    void abort(WebCore::SpeechRecognitionClient*) final;
&gt; 
&gt; Can be all private?

Will move.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:60
&gt;&gt; +    Deque&lt;RefPtr&lt;WebCore::SpeechRecognitionRequest&gt;&gt; m_pendingRequests;
&gt; 
&gt; Deque&lt;Ref&lt;&gt;&gt;

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698684</commentid>
    <comment_count>12</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-16 11:10:02 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #10)
&gt; Comment on attachment 411532 [details]
&gt; Patch
&gt; 
&gt; Overall looks good.
&gt; Two main comments:
&gt; - We might want to add a setting to disable the feature until ready.
&gt; - We might want to add some tests for this patch. It seems we could already
&gt; do a lot of checks like WebIDL.
&gt; 
Will add feature flag and tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699199</commentid>
    <comment_count>13</comment_count>
      <attachid>411727</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 00:57:07 -0700</bug_when>
    <thetext>Created attachment 411727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699284</commentid>
    <comment_count>14</comment_count>
      <attachid>411754</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 09:42:04 -0700</bug_when>
    <thetext>Created attachment 411754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699313</commentid>
    <comment_count>15</comment_count>
      <attachid>411764</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 11:01:55 -0700</bug_when>
    <thetext>Created attachment 411764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699441</commentid>
    <comment_count>16</comment_count>
      <attachid>411764</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-19 14:31:41 -0700</bug_when>
    <thetext>Comment on attachment 411764
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411764&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        Based on https://wicg.github.io/speech-api/#speechreco-section.

I think it would be helpful to write up the major design decisions that when into what are implementing here, such as a high level overview of the design, where the binding to platform speech recognition will go, etc.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl:30
&gt; +] interface SpeechRecognitionAlternative {

Should this also be guarded by EnabledBySetting=SpeechRecognition?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.idl:29
&gt; +] interface SpeechRecognitionErrorEvent : Event {

Should this also be guarded by EnabledBySetting=SpeechRecognition?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:29
&gt; +] interface SpeechRecognitionEvent : Event {

Should this also be guarded by EnabledBySetting=SpeechRecognition?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionProgressUpdate.h:69
&gt; +    Optional&lt;SpeechRecognitionError&gt; m_error;
&gt; +    Optional&lt;Vector&lt;SpeechRecognitionResultData&gt;&gt; m_results;

If these are mutually exclusive, this should probably be something like Variant&lt;WTF::Monostate, SpeechRecognitionError, Vector&lt;SpeechRecognitionResultData&gt;&gt;

&gt; Source/WebCore/Modules/speech/SpeechRecognitionResult.idl:30
&gt; +] interface SpeechRecognitionResult {

Should this also be guarded by EnabledBySetting=SpeechRecognition?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl:30
&gt; +] interface SpeechRecognitionResultList {

Should this also be guarded by EnabledBySetting=SpeechRecognition?

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:351
&gt; +@property (nonatomic) BOOL speechRecognitionEnabled;

It doesn&apos;t look like you hooked up a provider for WebKitLegacy, why add preferences for it?

&gt; LayoutTests/TestExpectations:79
&gt; +speech [ Skip ]

Why skip these by default? If we can keep these passing on all platforms that would be much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699461</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-19 15:02:04 -0700</bug_when>
    <thetext>There other thing it would be good to mention / figure out up front is how you intended to test this. It seems like a MockSpeechRecognitionProvider of some form might be the right strategy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699502</commentid>
    <comment_count>18</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 16:05:53 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; There other thing it would be good to mention / figure out up front is how
&gt; you intended to test this. It seems like a MockSpeechRecognitionProvider of
&gt; some form might be the right strategy?

(In reply to Sam Weinig from comment #16)
&gt; Comment on attachment 411764 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411764&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Based on https://wicg.github.io/speech-api/#speechreco-section.
&gt; 
&gt; I think it would be helpful to write up the major design decisions that when
&gt; into what are implementing here, such as a high level overview of the
&gt; design, where the binding to platform speech recognition will go, etc.
&gt; 

Sure, will add. I am going to break this patch down to smaller ones to make the design more clear.

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl:30
&gt; &gt; +] interface SpeechRecognitionAlternative {
&gt; 
&gt; Should this also be guarded by EnabledBySetting=SpeechRecognition?
&gt; 

Yes!

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.idl:29
&gt; &gt; +] interface SpeechRecognitionErrorEvent : Event {
&gt; 
&gt; Should this also be guarded by EnabledBySetting=SpeechRecognition?
&gt; 

Yes!

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:29
&gt; &gt; +] interface SpeechRecognitionEvent : Event {
&gt; 
&gt; Should this also be guarded by EnabledBySetting=SpeechRecognition?
&gt; 

Yes!

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionProgressUpdate.h:69
&gt; &gt; +    Optional&lt;SpeechRecognitionError&gt; m_error;
&gt; &gt; +    Optional&lt;Vector&lt;SpeechRecognitionResultData&gt;&gt; m_results;
&gt; 
&gt; If these are mutually exclusive, this should probably be something like
&gt; Variant&lt;WTF::Monostate, SpeechRecognitionError,
&gt; Vector&lt;SpeechRecognitionResultData&gt;&gt;
&gt; 

Will try using Variant.

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionResult.idl:30
&gt; &gt; +] interface SpeechRecognitionResult {
&gt; 
&gt; Should this also be guarded by EnabledBySetting=SpeechRecognition?
&gt; 

Yes!

&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl:30
&gt; &gt; +] interface SpeechRecognitionResultList {
&gt; 
&gt; Should this also be guarded by EnabledBySetting=SpeechRecognition?
&gt; 

Yes!

&gt; &gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:351
&gt; &gt; +@property (nonatomic) BOOL speechRecognitionEnabled;
&gt; 
&gt; It doesn&apos;t look like you hooked up a provider for WebKitLegacy, why add
&gt; preferences for it?
&gt; 

I think this will be implemented later in WebKitLegacy so I added this preference. I will move the implementation to followup patches and only do bindings &amp; feature flag in this patch.

&gt; &gt; LayoutTests/TestExpectations:79
&gt; &gt; +speech [ Skip ]
&gt; 
&gt; Why skip these by default? If we can keep these passing on all platforms
&gt; that would be much better.

It seems we only have speech service on Cocoa platforms now, so I only enable the tests on on Cocoa platforms and skip on the others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699503</commentid>
    <comment_count>19</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 16:08:27 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; There other thing it would be good to mention / figure out up front is how
&gt; you intended to test this. It seems like a MockSpeechRecognitionProvider of
&gt; some form might be the right strategy?

Yes, that&apos;s how we did for SpeechSynthesis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699552</commentid>
    <comment_count>20</comment_count>
      <attachid>411820</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 17:49:54 -0700</bug_when>
    <thetext>Created attachment 411820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699568</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-19 18:51:36 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #18)

&gt; 
&gt; &gt; &gt; LayoutTests/TestExpectations:79
&gt; &gt; &gt; +speech [ Skip ]
&gt; &gt; 
&gt; &gt; Why skip these by default? If we can keep these passing on all platforms
&gt; &gt; that would be much better.
&gt; 
&gt; It seems we only have speech service on Cocoa platforms now, so I only
&gt; enable the tests on on Cocoa platforms and skip on the others.

It would be much better if you made the tests work for all platforms, mocking out the actual speech recognition. We don&apos;t really need to test the platform&apos;s speech recognition at all, that&apos;s the job of the platform library, but rather you need to test the binding within WebKit and WebCore, and that should almost entirely be cross-platform, so there shouldn&apos;t be any reason not to make the tests cross platform from the start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699602</commentid>
    <comment_count>22</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 20:50:29 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #21)
&gt; (In reply to Sihui Liu from comment #18)
&gt; 
&gt; &gt; 
&gt; &gt; &gt; &gt; LayoutTests/TestExpectations:79
&gt; &gt; &gt; &gt; +speech [ Skip ]
&gt; &gt; &gt; 
&gt; &gt; &gt; Why skip these by default? If we can keep these passing on all platforms
&gt; &gt; &gt; that would be much better.
&gt; &gt; 
&gt; &gt; It seems we only have speech service on Cocoa platforms now, so I only
&gt; &gt; enable the tests on on Cocoa platforms and skip on the others.
&gt; 
&gt; It would be much better if you made the tests work for all platforms,
&gt; mocking out the actual speech recognition. We don&apos;t really need to test the
&gt; platform&apos;s speech recognition at all, that&apos;s the job of the platform
&gt; library, but rather you need to test the binding within WebKit and WebCore,
&gt; and that should almost entirely be cross-platform, so there shouldn&apos;t be any
&gt; reason not to make the tests cross platform from the start.

I see, you are talking about the test for API existence. We did not compile ( ENABLE_SPEECH_SYNTHESIS is 0) or expose SpeechSynthesis or run corresponding tests on non-Cocoa platforms, so I made SpeechRecognition to match that for consistency. We can remove the macros together later.

Or do you think it&apos;s better to not add the macro for SpeechRecognition since it&apos;s newly added?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699613</commentid>
    <comment_count>23</comment_count>
      <attachid>411840</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-19 23:13:53 -0700</bug_when>
    <thetext>Created attachment 411840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699622</commentid>
    <comment_count>24</comment_count>
      <attachid>411843</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 00:03:38 -0700</bug_when>
    <thetext>Created attachment 411843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699772</commentid>
    <comment_count>25</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-20 09:31:34 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #22)
&gt; (In reply to Sam Weinig from comment #21)
&gt; &gt; (In reply to Sihui Liu from comment #18)
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; LayoutTests/TestExpectations:79
&gt; &gt; &gt; &gt; &gt; +speech [ Skip ]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Why skip these by default? If we can keep these passing on all platforms
&gt; &gt; &gt; &gt; that would be much better.
&gt; &gt; &gt; 
&gt; &gt; &gt; It seems we only have speech service on Cocoa platforms now, so I only
&gt; &gt; &gt; enable the tests on on Cocoa platforms and skip on the others.
&gt; &gt; 
&gt; &gt; It would be much better if you made the tests work for all platforms,
&gt; &gt; mocking out the actual speech recognition. We don&apos;t really need to test the
&gt; &gt; platform&apos;s speech recognition at all, that&apos;s the job of the platform
&gt; &gt; library, but rather you need to test the binding within WebKit and WebCore,
&gt; &gt; and that should almost entirely be cross-platform, so there shouldn&apos;t be any
&gt; &gt; reason not to make the tests cross platform from the start.
&gt; 
&gt; I see, you are talking about the test for API existence. We did not compile
&gt; ( ENABLE_SPEECH_SYNTHESIS is 0) or expose SpeechSynthesis or run
&gt; corresponding tests on non-Cocoa platforms, so I made SpeechRecognition to
&gt; match that for consistency. We can remove the macros together later.
&gt; 
&gt; Or do you think it&apos;s better to not add the macro for SpeechRecognition since
&gt; it&apos;s newly added?

Yeah, if you have a runtime flag, I think we should avoid ENABLE_SPEECH_SYNTHESIS style macros where we can. The fewer differences in testing across the platforms we can have, the better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699819</commentid>
    <comment_count>26</comment_count>
      <attachid>411882</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 10:29:32 -0700</bug_when>
    <thetext>Created attachment 411882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699822</commentid>
    <comment_count>27</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 10:31:34 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #25)
&gt; (In reply to Sihui Liu from comment #22)
&gt; &gt; (In reply to Sam Weinig from comment #21)
&gt; &gt; &gt; (In reply to Sihui Liu from comment #18)
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; LayoutTests/TestExpectations:79
&gt; &gt; &gt; &gt; &gt; &gt; +speech [ Skip ]
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Why skip these by default? If we can keep these passing on all platforms
&gt; &gt; &gt; &gt; &gt; that would be much better.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; It seems we only have speech service on Cocoa platforms now, so I only
&gt; &gt; &gt; &gt; enable the tests on on Cocoa platforms and skip on the others.
&gt; &gt; &gt; 
&gt; &gt; &gt; It would be much better if you made the tests work for all platforms,
&gt; &gt; &gt; mocking out the actual speech recognition. We don&apos;t really need to test the
&gt; &gt; &gt; platform&apos;s speech recognition at all, that&apos;s the job of the platform
&gt; &gt; &gt; library, but rather you need to test the binding within WebKit and WebCore,
&gt; &gt; &gt; and that should almost entirely be cross-platform, so there shouldn&apos;t be any
&gt; &gt; &gt; reason not to make the tests cross platform from the start.
&gt; &gt; 
&gt; &gt; I see, you are talking about the test for API existence. We did not compile
&gt; &gt; ( ENABLE_SPEECH_SYNTHESIS is 0) or expose SpeechSynthesis or run
&gt; &gt; corresponding tests on non-Cocoa platforms, so I made SpeechRecognition to
&gt; &gt; match that for consistency. We can remove the macros together later.
&gt; &gt; 
&gt; &gt; Or do you think it&apos;s better to not add the macro for SpeechRecognition since
&gt; &gt; it&apos;s newly added?
&gt; 
&gt; Yeah, if you have a runtime flag, I think we should avoid
&gt; ENABLE_SPEECH_SYNTHESIS style macros where we can. The fewer differences in
&gt; testing across the platforms we can have, the better.

Okay, remove the ENABLE_SPEECH_RECOGNITION macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699827</commentid>
    <comment_count>28</comment_count>
      <attachid>411883</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 10:39:59 -0700</bug_when>
    <thetext>Created attachment 411883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699850</commentid>
    <comment_count>29</comment_count>
      <attachid>411883</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-20 11:03:00 -0700</bug_when>
    <thetext>Comment on attachment 411883
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411883&amp;action=review

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:41
&gt; +    void setLang(const String&amp; lang) { m_lang = lang; }

String&amp;&amp; probably and WFMOve

&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:60
&gt; +    SpeechRecognition(Document&amp;);

explicit

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.cpp:41
&gt; +    : m_transcript(transcript)

WTFMove()

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:39
&gt; +    String transcript() const { return m_transcript; }

const String&amp;?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:43
&gt; +    explicit SpeechRecognitionAlternative(String&amp;&amp; transcript, double confidence);

explicit not needed

&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.cpp:35
&gt; +Ref&lt;SpeechRecognitionErrorEvent&gt; SpeechRecognitionErrorEvent::create(const AtomString&amp; type, const Init&amp; init, IsTrusted isTrusted)

Could probably have Init&amp;&amp; to be able to move m_message

&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.h:45
&gt; +    String message() const { return m_message; }

const String&amp;?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.h:51
&gt; +    EventInterface eventInterface() const override;

final

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:46
&gt; +SpeechRecognitionEvent::SpeechRecognitionEvent(const AtomString&amp; type, const Init&amp; init, IsTrusted isTrusted)

Init&amp;&amp;

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:49
&gt; +    , m_results(init.results)

WTFMove()

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.h:52
&gt; +    EventInterface eventInterface() const override;

final

&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.h:55
&gt; +    RefPtr&lt;SpeechRecognitionResultList&gt; m_results;

Can it be a Ref&lt;&gt;? It seems results is required so we could mandate it even though the struct is a RefPtr.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.h:48
&gt; +    SpeechRecognitionResultList(Vector&lt;Ref&lt;SpeechRecognitionResult&gt;&gt;&amp;&amp;);

explicit

&gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.h:35
&gt; +// #include &lt;JavaScriptCore/JSGlobalObject.h&gt;

Not needed

&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:351
&gt; +@property (nonatomic) BOOL speechRecognitionEnabled;

Should it be _speechRecognitionEnabled?

&gt; Tools/DumpRenderTree/TestOptions.h:67
&gt; +    bool enableSpeechRecognition { true };

Unneeded?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699880</commentid>
    <comment_count>30</comment_count>
      <attachid>411883</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 12:38:11 -0700</bug_when>
    <thetext>Comment on attachment 411883
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=411883&amp;action=review

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:41
&gt;&gt; +    void setLang(const String&amp; lang) { m_lang = lang; }
&gt; 
&gt; String&amp;&amp; probably and WFMOve

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognition.h:60
&gt;&gt; +    SpeechRecognition(Document&amp;);
&gt; 
&gt; explicit

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.cpp:41
&gt;&gt; +    : m_transcript(transcript)
&gt; 
&gt; WTFMove()

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:39
&gt;&gt; +    String transcript() const { return m_transcript; }
&gt; 
&gt; const String&amp;?

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionAlternative.h:43
&gt;&gt; +    explicit SpeechRecognitionAlternative(String&amp;&amp; transcript, double confidence);
&gt; 
&gt; explicit not needed

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.cpp:35
&gt;&gt; +Ref&lt;SpeechRecognitionErrorEvent&gt; SpeechRecognitionErrorEvent::create(const AtomString&amp; type, const Init&amp; init, IsTrusted isTrusted)
&gt; 
&gt; Could probably have Init&amp;&amp; to be able to move m_message

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.h:45
&gt;&gt; +    String message() const { return m_message; }
&gt; 
&gt; const String&amp;?

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.h:51
&gt;&gt; +    EventInterface eventInterface() const override;
&gt; 
&gt; final

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:46
&gt;&gt; +SpeechRecognitionEvent::SpeechRecognitionEvent(const AtomString&amp; type, const Init&amp; init, IsTrusted isTrusted)
&gt; 
&gt; Init&amp;&amp;

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.cpp:49
&gt;&gt; +    , m_results(init.results)
&gt; 
&gt; WTFMove()

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.h:52
&gt;&gt; +    EventInterface eventInterface() const override;
&gt; 
&gt; final

Will change.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionEvent.h:55
&gt;&gt; +    RefPtr&lt;SpeechRecognitionResultList&gt; m_results;
&gt; 
&gt; Can it be a Ref&lt;&gt;? It seems results is required so we could mandate it even though the struct is a RefPtr.

https://wicg.github.io/speech-api/#eventdef-speechrecognition-nomatch says the results can be null for nomatch event.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.h:48
&gt;&gt; +    SpeechRecognitionResultList(Vector&lt;Ref&lt;SpeechRecognitionResult&gt;&gt;&amp;&amp;);
&gt; 
&gt; explicit

Will add.

&gt;&gt; Source/WebCore/Modules/webaudio/AudioWorkletNode.h:35
&gt;&gt; +// #include &lt;JavaScriptCore/JSGlobalObject.h&gt;
&gt; 
&gt; Not needed

Yes.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:351
&gt;&gt; +@property (nonatomic) BOOL speechRecognitionEnabled;
&gt; 
&gt; Should it be _speechRecognitionEnabled?

hmm, since it&apos;s only in DumpRenderTree now so I think yes.

&gt;&gt; Tools/DumpRenderTree/TestOptions.h:67
&gt;&gt; +    bool enableSpeechRecognition { true };
&gt; 
&gt; Unneeded?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699883</commentid>
    <comment_count>31</comment_count>
      <attachid>411900</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 12:51:47 -0700</bug_when>
    <thetext>Created attachment 411900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699906</commentid>
    <comment_count>32</comment_count>
      <attachid>411910</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 13:39:31 -0700</bug_when>
    <thetext>Created attachment 411910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699938</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-20 14:54:42 -0700</bug_when>
    <thetext>Committed r268762: &lt;https://trac.webkit.org/changeset/268762&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411910.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700025</commentid>
    <comment_count>34</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 17:41:03 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700026</commentid>
    <comment_count>35</comment_count>
      <attachid>411943</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 17:41:04 -0700</bug_when>
    <thetext>Created attachment 411943
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700027</commentid>
    <comment_count>36</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-20 17:41:33 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700028</commentid>
    <comment_count>37</comment_count>
      <attachid>411944</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-20 17:50:00 -0700</bug_when>
    <thetext>Created attachment 411944
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700036</commentid>
    <comment_count>38</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-20 18:40:19 -0700</bug_when>
    <thetext>Committed r268780: &lt;https://trac.webkit.org/changeset/268780&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411944.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700037</commentid>
    <comment_count>39</comment_count>
      <attachid>411944</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-20 18:41:28 -0700</bug_when>
    <thetext>Comment on attachment 411944
Patch for landing

View in context: https://bugs.webkit.org/attachment.cgi?id=411944&amp;action=review

&gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.h:41
&gt; +    unsigned long length() const { return m_list.size(); }

unsigned makes sense, maybe size_t, but unsigned long does not seem right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700212</commentid>
    <comment_count>40</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-10-21 09:13:50 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #39)
&gt; Comment on attachment 411944 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411944&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.h:41
&gt; &gt; +    unsigned long length() const { return m_list.size(); }
&gt; 
&gt; unsigned makes sense, maybe size_t, but unsigned long does not seem right

oops, copied unsigned long from the idl file. Will fix this in next related patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700415</commentid>
    <comment_count>41</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-21 15:16:52 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #40)
&gt; (In reply to Darin Adler from comment #39)
&gt; &gt; Comment on attachment 411944 [details]
&gt; &gt; Patch for landing
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411944&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionResultList.h:41
&gt; &gt; &gt; +    unsigned long length() const { return m_list.size(); }
&gt; &gt; 
&gt; &gt; unsigned makes sense, maybe size_t, but unsigned long does not seem right
&gt; 
&gt; oops, copied unsigned long from the idl file. Will fix this in next related
&gt; patch.

Note, that IDL &quot;long&quot; maps to C &quot;int&quot; - https://heycam.github.io/webidl/#es-long</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411483</attachid>
            <date>2020-10-15 13:57:09 -0700</date>
            <delta_ts>2020-10-15 14:00:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015135707.patch</filename>
            <type>text/plain</type>
            <size>120452</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiOTYzMGEyMjFkZmUxMDllYjZhMDA2
YzRkNDViMTBlOTJiNDJhYTkuLjVmZTQ5ZDc5OWVkYzRkMjVlNTMzZjNjYWUxYzBlY2JmMjNjZDE5
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBEaXNhbGxvdyBwb3J0cyBpbiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJm
ZDJiYzRhZjBjMmI2MzdiMDUyNzM5MGZmYjA4YjVkYmRiZGM5Li5hN2Q0OWU3YjcyM2EzNTY3MWJm
MWRiNDBmZGZjZDU1MWEzMjc1YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIw
LTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
OjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250
aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRD
b250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmlt
UmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0
SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1h
eEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50
SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVt
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5p
bjoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKwogMjAyMC0xMC0xNCAgRG9uIE9sbXN0ZWFkICA8
ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVz
LCBtaWQgT2N0b2JlciAyMDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUyOTgyOGU5OWExYTFmMjExNTFiMWYzMmYx
ZjBhZGFlMDQ5MzgxMWUuLjI3NmU5ZGJjYTZlMmVkMGQ5ZDg3MzAzMWQ0MjA4OWJjYjFlNTcyYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3Nzgw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1p
dHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKwogMjAyMC0xMC0xNCAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxk
IGZpeGVzLCBtaWQgT2N0b2JlciAyMDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgK
aW5kZXggY2RkOTliN2Y5NDI4ZGUxMWE0ZDFmODk2NzQxMDY1MzhlNjQ1NjQ1ZS4uMzExN2VmNGQz
NjI2YWU1NGIwYWIyNjQ1YjI5NzQ2Yjc5YWJiNDkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaApAQCAtNDI1LDYgKzQyNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9S
RUNPR05JVElPTikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfU1BF
RUNIX1JFQ09HTklUSU9OIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAppbmRleCA4NmEwNzc0MWYzODQ0NzkyMGFhMGU5Mjc2MmJkNGUwZTZl
NjJkZDcwLi5iZjE1N2U5YjcwZTlmMzM3OGU5OTkzNTVlNTNlY2E5M2FiOWJjNDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2
ICsyNzksMTQgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3Ir
U3RvcmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9I
VE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwK
KyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlv
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlMjFmYzgwNTYxMjRlYmVhYTA5MmQyZmM4ZjY2
ZTQ3NjZkMjg2ZjBlLi5jOTQzNWZjYWVkZDVhODZkZWI5YmRhNTU1NzM0ZDlkZDc0NjQ0ZDI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApA
QCAtNTQ3LDYgKzU0Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVlY2hTeW50
aGVzaXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVl
Y2hSZWNvZ25pdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTVdpbmRvdytWaXN1YWxWaWV3cG9ydC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1Zpc3VhbFZpZXdwb3J0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1dl
YkRhdGFiYXNlLmNwcApAQCAtNTYxLDYgKzU2Myw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93UXVvdGEuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJHUFUuY3Bw
CkBAIC0yMTA1LDYgKzIxMDksMjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3Qu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRo
ZXNpcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
NjUxM2I4YmVjMzUxN2Y3ZGJjNDYzMDJkZDY5OTJkMjRlOGEyMGRkNC4uMWYwNTQ3ZWExZTBkZGYw
YjljMWZkNGM2NmI5MmQxODg4MzViYzEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0zNzYsNiArMzc2LDE0IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsIFwKKwkk
KFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwg
XAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxlbmd0aFF1
ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50
UXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDNhNDNhNjRiNWMxYjY3MTM0MzY5Yzc1MjdhOWZhZjA5NDRkYWViMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytT
cGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50ZWRCeT1ET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbgorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiBzcGVlY2hSZWNvZ25pdGlv
bjsKKyAgICBbSW1wbGVtZW50ZWRBcz1zcGVlY2hSZWNvZ25pdGlvbl0gcmVhZG9ubHkgYXR0cmli
dXRlIFNwZWVjaFJlY29nbml0aW9uIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29n
bml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2JjMmViZDVlOTViZjkzOWY4YTcwNDc1ODg4
NmUzOWI4MTVhNWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0
aW9uKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93KQor
eworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6fkRPTVdpbmRvd1NwZWVjaFJlY29n
bml0aW9uKCkgPSBkZWZhdWx0OworCitjb25zdCBjaGFyKiBET01XaW5kb3dTcGVlY2hSZWNvZ25p
dGlvbjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93U3BlZWNoUmVj
b2duaXRpb24iOworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb246OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbj4od2luZG93
KTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHBy
b3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkp
OworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworU3BlZWNoUmVjb2duaXRpb24q
IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzcGVlY2hSZWNvZ25pdGlvbihET01XaW5kb3cm
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20o
JndpbmRvdyktPnNwZWVjaFJlY29nbml0aW9uKCk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uKiBE
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGF1
dG8qIHdpbmRvdyA9IHRoaXMtPndpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9
IHdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAocGFnZS0+aXNDbG9zaW5n
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0
aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uID0gU3BlZWNoUmVjb2duaXRpb246OmNy
ZWF0ZSgqZG9jdW1lbnQpOworCisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb24uZ2V0KCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9E
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWRiYjcwZTFmMDg4
YWE4ZDBhNTFkNTgyYTE1N2QzMjcwZDBiM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNI
X1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBE
T01XaW5kb3dQcm9wZXJ0eSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93Kik7Cisg
ICAgdmlydHVhbCB+RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNoUmVjb2duaXRpb24oRE9NV2lu
ZG93Jik7CisgICAgc3RhdGljIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBmcm9tKERPTVdp
bmRvdyopOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hSZWNvZ25p
dGlvbigpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAg
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYzQ1MDQ5YzM1YWRlNDI3NzY5OGMwOTc3ZjkyZjUxZTg3OTA3
Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9u
KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvbihkb2N1bWVudCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2du
aXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
KQoreworICAgIGF1dG8qIGNsaWVudCA9IGRvY3VtZW50LnBhZ2UoKS0+c3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uKCk7CisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBtYWtl
V2Vha1B0cigqY2xpZW50KTsKK30KKworU3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hSZWNvZ25p
dGlvbigpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nIHx8IG1fc3RhdGUg
PT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIGFib3J0KCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZv
aWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3Rh
dGU6OklkbGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisK
KyAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RhcnQodGhpcywgbV9sYW5nLCBt
X2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKyAgICBt
X3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOworCisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbjo6c3RvcCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OlN0
YXJ0aW5nICYmIG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpIHsKKyAgICAgICAgTE9HX0VSUk9S
KCJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdG9wcGVkIG9yIGFscmVhZHkgc3RvcHBlZC4iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LT5zdG9wKHRoaXMpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OmFib3J0KCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6
U3RhcnRpbmcgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJS
T1IoIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24tPmFib3J0KHRoaXMpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6
OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
dGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygp
Cit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb3N0
YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kc3Rh
cnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0
YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaGVu
ZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkKK3sK
KyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5kZW5kRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAg
IGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRFdmVudCwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNwYXRjaEV2
ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9tYXRjaEV2
ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZChj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OklkbGU7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKworICAgIGlmICghZXJyb3Iu
aXNOdWxsKCkpIAorICAgICAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCAqZXJyb3IuY29kZSwgZXJyb3Iu
bWVzc2FnZSkpOworICAgIGVsc2UKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVS
ZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJlc3VsdERh
dGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBhbGxSZXN1
bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1bHRzLnNpemUo
KSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRWZWN0b3IobV9m
aW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJbmRleCA9IGFsbFJl
c3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0RGF0YXMpIHsK
KyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4gYWx0ZXJu
YXRpdmVzOworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDogcmVzdWx0RGF0YS5h
bHRlcm5hdGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMuYXBwZW5kKFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCwgYWx0
ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKyAgICAgICAgYXV0byBuZXdSZXN1bHQgPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgcmVzdWx0
RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgeworICAgICAg
ICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAgICArK25v
bkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5hcHBlbmQo
V1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3QgPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMpKTsKKyAg
ICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVzdWx0TGlz
dC5nZXQoKSkpKTsKK30KKworY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRpb24iOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxMzcw
MmM5YjUwMTU2YjBjYTczNzM2ZjE5ZmVjY2NlZTVkOTYzYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTAsMCAr
MSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9j
dW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZD
b3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEgIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQm
KTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYgbGFuZygp
IGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQorICAgIHZvaWQgc2V0TGFuZyhjb25zdCBTdHJpbmcm
IGxhbmcpIHsgbV9sYW5nID0gbGFuZzsgfQorCisgICAgYm9vbCBjb250aW51b3VzKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgdm9pZCBzZXRDb250aW51b3VzKGJvb2wgY29u
dGludW91cykgeyBtX2NvbnRpbnVvdXMgPSBjb250aW51b3VzOyB9CisKKyAgICBib29sIGludGVy
aW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmltUmVzdWx0czsgfQorICAgIHZvaWQg
c2V0SW50ZXJpbVJlc3VsdHMoYm9vbCBpbnRlcmltUmVzdWx0cykgeyBtX2ludGVyaW1SZXN1bHRz
ID0gaW50ZXJpbVJlc3VsdHM7IH0KKworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcygpIGNv
bnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVzOyB9CisgICAgdm9pZCBzZXRNYXhBbHRlcm5h
dGl2ZXModW5zaWduZWQgbWF4QWx0ZXJuYXRpdmVzKSB7IG1fbWF4QWx0ZXJuYXRpdmVzID0gbWF4
QWx0ZXJuYXRpdmVzOyB9CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydCgpOworICAgIHZv
aWQgc3RvcCgpOworICAgIHZvaWQgYWJvcnQoKTsKKworICAgIC8vIFRPRE86IG1ha2Ugc3VyZSBl
dmVudCBvcmRlcmluZyBpcyBjb3JyZWN0LgorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0
Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNo
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0b3BDYXB0
dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+JikgZmluYWw7CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcg
UmVmQ291bnRlZDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7Cisg
ICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdG9wcGluZywKKyAg
ICAgICAgQWJvcnRpbmcsCisgICAgICAgIElkbGUsCisgICAgfTsKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbihEb2N1bWVudCYpOworCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0OworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRl
cmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50VGFyZ2V0
SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAg
ICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNpZGUgZGVm
YXVsdCBsYW5ndWFnZS4KKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3Vz
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVp
bnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKworICAgIFZl
Y3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUyZWJj
ZWVlOTQyMTJlMmE0YWM2NGViOGI5MjdkN2RhOGI2ZGNiOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBDb25k
aXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJm
YWNlIFNwZWVjaFJlY29nbml0aW9uIHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNvbnN0cnVj
dG9yKCk7CisKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmlidXRlIGJv
b2xlYW4gY29udGludW91czsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbnRlcmltUmVzdWx0czsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBbHRlcm5hdGl2ZXM7CisKKyAgICBbTWF5
VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzdGFydCgpOworICAgIHVuZGVmaW5lZCBzdG9wKCk7
CisgICAgdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
YXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291bmRzdGFydDsKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291
bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvZW5kOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
ZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyN2JjMTky
YjM5YjdhZjA0NmZkMmZhMjlmNGFhZWE5NTM3ODJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3Bw
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdHJh
bnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSh0cmFuc2NyaXB0LCBjb25maWRlbmNlKSk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUoY29uc3QgU3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSkKKyAgICA6
IG1fdHJhbnNjcmlwdCh0cmFuc2NyaXB0KQorICAgICwgbV9jb25maWRlbmNlKGNvbmZpZGVuY2Up
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E2ZTExZjlkYjc1MTA4ZDIyOGQyYmEyNDYyOGVmNzQzNGFm
YjI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUp
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisg
ICAgU3RyaW5nIHRyYW5zY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAg
ICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoY29uc3Qg
U3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJpbmcgbV90
cmFuc2NyaXB0OworICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMTM2ZTBjZjMyZjAzMDNhMWVhYTQzZDQ3OTZkZDk4MzdiZWM5ZDI2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
KyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0cmFuc2NyaXB0OworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25maWRlbmNlOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYTljYTg2M2RkZTE4ZWRmZjUzZWYzZTc0ZDQyZmM2OGE1ZDQyYWNiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZT4gY29kZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIGJvb2wgaXNOdWxsKCkgY29uc3Qg
eyByZXR1cm4gIWNvZGUuaGFzVmFsdWUoKTsgfQorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXIm
KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9u
RXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
Y29kZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1bHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29kZSkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdlKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNDM4NDNiNWM2YTBlMjNhYjI1YWY5ZDY3NDMyMTBhOTk0YTEyNGNiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgeworICAgIE5vU3BlZWNoLAor
ICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxs
b3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1
YWdlTm90U3VwcG9ydGVkCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNDE5ZDQzODUzMWQyNWRhOTBhZGE3
YWQwODQzMzkwN2MzNWQ3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKQEAgLTAsMCArMSwzNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCitd
IGVudW0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgeworICAgICJuby1zcGVlY2giLAorICAg
ICJhYm9ydGVkIiwKKyAgICAiYXVkaW8tY2FwdHVyZSIsCisgICAgIm5ldHdvcmsiLAorICAgICJu
b3QtYWxsb3dlZCIsCisgICAgInNlcnZpY2Utbm90LWFsbG93ZWQiLAorICAgICJiYWQtZ3JhbW1h
ciIsCisgICAgImxhbmd1YWdlLW5vdC1zdXBwb3J0ZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjVmMzE4MmMxOGMxMjRlMjUyZjdmMTE3MThjMjA1ZTA2NWZiZWJh
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworCitSZWY8U3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQg
aXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoY29u
c3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgZXJyb3IsIG1lc3NhZ2UpKTsKK30KKworU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
KyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZXJyb3IoaW5pdC5l
cnJvcikKKyAgICAsIG1fbWVzc2FnZShpbml0Lm1lc3NhZ2UpCit7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCisgICAgOiBFdmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZl
bnQ6OklzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9OyAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1ZmZmMWNm
ZjAzNDk5MWRmMmIzMTVmYjExNGI2MTVhODRiOGMxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7CitwdWJs
aWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgfTsKKwor
ICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAg
ICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IEF0
b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwgY29uc3QgU3RyaW5nJik7CisK
KyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZXJyb3I7IH0KKyAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZTsg
fQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9t
U3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwg
Y29uc3QgU3RyaW5nJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgbV9lcnJvcjsK
KyAgICBTdHJpbmcgbV9tZXNzYWdlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMwNjYyNjVkM2M5
N2E0ZDRjMTkwZTczZDg1NzhiZTAyOWQ0MzIzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVD
T0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKworZGljdGlvbmFyeSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICBET01TdHJpbmcgbWVzc2FnZSA9
ICIiOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5Yzg4YjJkYWI5YTIxN2U3MTUx
YTJmZDY2MmYxMDYxMzE4MmYxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25FdmVudC5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uRXZlbnQpOworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCBpbml0LCBpc1Ry
dXN0ZWQpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJ
bmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgcmVz
dWx0SW5kZXgsIFdURk1vdmUocmVzdWx0cykpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJ
bml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdCwg
aXNUcnVzdGVkKQorICAgICwgbV9yZXN1bHRJbmRleChpbml0LnJlc3VsdEluZGV4KQorICAgICwg
bV9yZXN1bHRzKGluaXQucmVzdWx0cykKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6
U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCBy
ZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRz
KQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKQorICAgICwgbV9yZXN1bHRJbmRleChyZXN1bHRJbmRleCkKKyAgICAsIG1fcmVz
dWx0cyhXVEZNb3ZlKHJlc3VsdHMpKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVj
aFJlY29nbml0aW9uRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYjYxOTc3ZGIzYWZhNjI0Njcy
Y2MxNTE5NWVlNDVjZjIwM2E4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQpOworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJ
bml0IHsKKyAgICAgICAgdWludDY0X3QgcmVzdWx0SW5kZXg7CisgICAgICAgIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdHM7CisgICAgfTsKKworICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25z
dCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJl
c3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAg
IHVpbnQ2NF90IHJlc3VsdEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRJbmRleDsgfQor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCogcmVzdWx0cygpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzdWx0cy5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3VsdEluZGV4
LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAgIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB1aW50NjRfdCBt
X3Jlc3VsdEluZGV4OworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IG1f
cmVzdWx0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0OGMzZWMyZTE0ODRjMGU5NzhiZjFiYmE0MmEyYmQzNDMxMWMx
OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFeHBvc2VkPVdpbmRvdwor
XSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgZXZlbnRJbml0
RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXg7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1
bHRzOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleCA9IDA7CisgICAgcmVxdWlyZWQg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkYWUwMDEwNzc3NmU3ZDE5ZjNmNTdkNmQ1MDJiY2M3ZjRmMDA5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoV1RGTW92ZShh
bHRlcm5hdGl2ZXMpLCBpc0ZpbmFsKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQorICAgIDogbV9hbHRlcm5hdGl2
ZXMoV1RGTW92ZShhbHRlcm5hdGl2ZXMpKQorICAgICwgbV9pc0ZpbmFsKGlzRmluYWwpCit7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2Fs
dGVybmF0aXZlcy5zaXplKCkpID8gbV9hbHRlcm5hdGl2ZXNbaW5kZXhdLnB0cigpIDogbnVsbHB0
cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxMzIzNTllODBkYTQ5OGFmMzYyYmRmNjk1OGUwMjdlNmQxZGRjMDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYm
LCBib29sIGlzRmluYWwpOworCisgICAgdWludDY0X3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9hbHRlcm5hdGl2ZXMuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0ZpbmFsKCkgY29uc3QgeyByZXR1
cm4gbV9pc0ZpbmFsOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSogaXRlbSh1
aW50NjRfdCBpbmRleCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBp
c0ZpbmFsKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+
IG1fYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgbV9pc0ZpbmFsIHsgZmFsc2UgfTsKK307CisKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNmVlNGUzYTgxZTQ1MmUyYmM1
NTEzNmRhODc3NmNlMzIyNDQyMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKQEAgLTAsMCArMSwzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRl
cmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIGlzRmluYWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTI4
OGUwNjBhMWYzODE4ZWU0MWNhOWQ2ZGM0NjI2Y2NkNzEyMmUzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFuc2NyaXB0
OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gZGVjb2Rl
KERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVzdWx0Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29uZmlk
ZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBWZWN0b3I8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAgICBib29s
IGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIg
PDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5h
bHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5ZTdhMDYwNWYx
Y2Q1MDliMzYzNzkyZmMzMTJiMTIyZmE0ODM2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QoKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFdURk1vdmUobGlzdCkpKTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQqIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6aXRlbSh1aW50NjRf
dCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9saXN0LnNpemUoKSkgPyBt
X2xpc3RbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q6OmFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYgcmVzdWx0KQoreworICAg
IG1fbGlzdC5hcHBlbmQobWFrZVJlZihyZXN1bHQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKKyAgICA6IG1fbGlzdChXVEZNb3ZlKGxpc3QpKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYTk4YTkyNDBjOTAwYzQ4ZGJmNDlmMzQxNzgyNjA2NmZlZTk2NTQy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdD4+JiYpOworCisgICAgYm9vbCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Qu
c2l6ZSgpOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5k
ZXgpIGNvbnN0OworCisgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKKwor
cHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoKSA9IGRlZmF1bHQ7Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiYmKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZjhmZjY1ZjhlMWQwMTBlNGJkNzMxMWRiODI4
YjNmMjBmOWE0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIElt
cGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNl
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBp
dGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IDczNjRiNGE2ZGFjM2U0
OGIwY2ZjN2I3ZmVhOGQ3NWEwZDE4ODRhYTQuLjFmZmMzOWFkZGQwMGJiOTI0N2Q5ZjE4ZTBhMWYz
N2M3MmJlOGU3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkF1ZGlv
Tm9kZUlucHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVkZSAiQXVk
aW9QYXJhbS5oIgorI2luY2x1ZGUgIkF1ZGlvUGFyYW1EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAi
QXVkaW9QYXJhbU1hcC5oIgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAi
QXVkaW9Xb3JrbGV0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk0ODA1MTFjNjk3ODE5N2VkNmYyNWIx
MWE4OGU2OTA0YjBhMzI0NDIuLjVhN2ZjMWM0NWE5NjU0M2ViMWI4MjNkZGYzNGMwN2M3ODkxNzQ2
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODEsNiArMTgxLDEzIEBAIE1vZHVsZXMvcGljdHVyZWlu
cGljdHVyZS9FbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHAKIE1vZHVsZXMvcGljdHVyZWlu
cGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKK01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCitN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNw
cAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCkBAIC0zNDgzLDYgKzM0OTAsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBKU1Nsb3Rh
YmxlLmNwcAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCitKU1Nw
ZWVjaFJlY29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAor
SlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogSlNTcGVl
Y2hTeW50aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I1MzNlZjZjNWY0NGNkYjg3ZGJiODEyMTE3ODk1YzBj
ZGMzMWVlMy4uMzU0ZDVkNDk3ZDE0MmI2YTM2MzA1OTQ1OWVhM2YyYmRhYjFkZGYwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjcyNiw2ICsyNzI2LDE4IEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29k
ZWNVVEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQzQ0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0
MkM5RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMw
MDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBH
cmFwaGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzNDk1MDY0MjUzODFEN0IwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0OTUwNjMyNTM4MUMwODAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
LmggKi87IH07CisJCTkzNDk1MDY4MjUzODFEQzYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUw
NjYyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1
MDZDMjUzODI1OTcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNkEyNTM4MjU5NjAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwNzEyNTM4QjA1RjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNzAyNTM4QjA1RjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzNDk1MDdBMjUzOEMxNTcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTA3NzI1MzhDMTU2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTA3RjI1MzhDMjc0MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oICovOyB9OworCQk5MzQ5NTA4NjI1MzhDMzk1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5NTA4MzI1MzhDMzk1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggKi87IH07CisJCTkzNDk1MDg4MjUzOENENjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDk1MDg3MjUzOENENjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCAqLzsgfTsKKwkJOTM0OTUwOEEyNTM4RDI3ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDk1MDg5MjUzOEQyNzcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgg
Ki87IH07CisJCTkzNDk1MDhEMjUzOEQzMUIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0OTUwOEIyNTM4RDMxOTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgg
Ki87IH07CisJCTkzNDk1MDkyMjUzOEQzNkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MDhGMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aCAqLzsgfTsKKwkJOTM0OTUwOUEyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NDk1MDk3MjUzOEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi87IH07
CiAJCTkzNENDMTBBMEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRDQzEwOTBFREIyMjM5
MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovOyB9OwogCQk5MzRGNzEzQTBENUE2RjEw
MDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGNzEzOTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJl
c291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyMzQs
NiArMTEyNDYsMzMgQEAKIAkJOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJv
d3NDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDQyQzlG
MEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAv
KiBHcmFwaGljc0NvbnRleHRDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmFwaGljc0NvbnRleHRDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2
MDI1MzgxQzA3MDA5OUYxNzEgLyogRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSAiRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MDYyMjUzODFDMDgwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDYzMjUzODFDMDgwMDk5
RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTA2NTI1MzgxREJFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwNjcyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MDZBMjUzODI1OTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3MDI1MzhCMDVGMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTA3NTI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MDc2MjUzOEMxNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3NzI1MzhD
MTU2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDdCMjUzOEMyNzIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3RDI1MzhDMjcz
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwODEyNTM4QzM5NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODIyNTM4QzM5
NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4MzI1MzhDMzk1MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTA4NzI1MzhDRDYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTA4OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDhCMjUzOEQzMTkwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTA4QzI1MzhEMzFBMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOEYyNTM4RDM2RTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTAyNTM4RDM2RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTA5MTI1MzhEMzZGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5NTI1MzhFMDNC
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTYyNTM4RTAzQjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5NzI1MzhF
MDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VD
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFNvdXJjZUNvZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5
IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTgwMyw2ICsyMTg0Miw4IEBACiAJCQkJNUM3Qzg4RDcxRDBGMUYyQjAwOUQyRjZE
IC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8q
IFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRDMDAxRTVBNjgg
LyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5MzQ5NTA2QTI1MzgyNTk2MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5MzQ5NTA3MDI1MzhCMDVGMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJQzE0OTM4MDUy
MjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEy
MTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMx
MjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLApAQCAtMjUzMTks
OSArMjUzNjAsMzQgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTM0OTUwNjAyNTM4
MUMwNzAwOTlGMTcxIC8qIERPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8sCiAJCQkJ
QUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRs
ICovLAorCQkJCTkzNDk1MDYyMjUzODFDMDgwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwNjMyNTM4MUMwODAwOTlGMTcxIC8qIERPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmggKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8q
IERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAw
OTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJCTkzNDk1MDY1MjUz
ODFEQkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwNjYy
NTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8sCisJCQkJOTM0OTUwNjcy
NTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLywKKwkJCQk5MzQ5NTA3
NjI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8s
CisJCQkJOTM0OTUwNzcyNTM4QzE1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCAqLywKKwkJCQk5MzQ5NTA3NTI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUwODkyNTM4RDI3NzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKKwkJCQk5MzQ5NTA4QjI1MzhEMzE5MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKKwkJCQk5MzQ5NTA4QzI1MzhE
MzFBMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAorCQkJCTkz
NDk1MDkwMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
ICovLAorCQkJCTkzNDk1MDhGMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTA5MTI1MzhEMzZGMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTA5NTI1MzhFMDNCMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwOTcyNTM4RTAzQzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTA5NjI1MzhF
MDNCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTM0OTUw
N0IyNTM4QzI3MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLywKKwkJ
CQk5MzQ5NTA3QzI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAq
LywKKwkJCQk5MzQ5NTA3RDI1MzhDMjczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaWRsICovLAorCQkJCTkzNDk1MDg3MjUzOENENjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaCAqLywKKwkJCQk5MzQ5NTA4MjI1MzhDMzk0MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk5MzQ5NTA4MzI1MzhDMzk1MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCisJCQkJOTM0OTUwODEy
NTM4QzM5NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJ
CQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJ
CQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJ
CUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAt
MzA2NTQsNyArMzA3MjAsNiBAQAogCQkJCTUxNzQxRDBGMEIwNzI1OUEwMEVENDQyQyAvKiBCYWNr
Rm9yd2FyZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBOEM4MUUxMUUzRDM2OTAwODEy
RkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBMUI4
N0QyMDg3QzRDMDAwOTc5QTc1IC8qIEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGOTQ3MjE3MjUzMjNDMjEwMEYxNTNDOCAvKiBCYWNrZ3JvdW5kSW1hZ2VH
ZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRFRTgwQzI2NDFDRDAwOUUyMzQ5IC8q
IEJhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEJCNjE2MUQwQTFCRjAwMDIyMTgxMiAv
KiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTk4RkJGMjRBMTYwREQw
MDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMzIyLDYg
KzMxMzg3LDcgQEAKIAkJCQk1MTg1RkM3NTFCQjRDNEU4MDAxMjg5OEYgLyogRE9NV2luZG93SW5k
ZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0QyQUQwNDE0QjgyM0E2MDA5M0RG
MzIgLyogRE9NV2luZG93UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5RjYwQjExMTU3
RjY4NkUwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0
OTUwNjQyNTM4MUQ3QjAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFENjE2QTQ4NjE2MDA5NzVBMjUgLyogRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENDQkI0OTE1MUY4MzE2MDBBQjdD
RTkgLyogRE9NV2luZG93V2ViRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEQTJF
MTE0MzEyMUUwMDBEODE3RSAvKiBET01XcmFwcGVyV29ybGQuaCBpbiBIZWFkZXJzICovLApAQCAt
MzM5ODMsNiArMzQwNDksMTcgQEAKIAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291
cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQy
IC8qIFNwYWNlU3BsaXRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyNkNERTBGMTE0MDQy
NEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0
OTUwNjgyNTM4MURDNjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzQ5NTA3QTI1MzhDMTU3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwNkMyNTM4MjU5NzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3MTI1
MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ5NTA4QTI1MzhEMjc4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwOEQyNTM4RDMxQjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA5MjI1
MzhEMzZGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ5NTA5QTI1MzhFMDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwN0YyNTM4QzI3NDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA4ODI1MzhD
RDYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzQ5NTA4NjI1MzhDMzk1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJB
NUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5NjBhNzM3ZmJl
MjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1M2RlYjdlMmQ3
YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBAQCBSVENEYXRh
Q2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQg
Y29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBjb25kaXRpb25h
bD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KK1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50
aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENvbnRleHRFdmVu
dCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAyZDNlN2Qz
Mzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTb3VyY2VCdWZm
ZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFs
PU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09H
TklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRI
RVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9u
YWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkzMmFjYmJiMTIyNzBiZGZhMjY4OWQ3
YzIwNzc5NDgxOWU2NzkuLmQ3ZTRkYjU4NDY5MzI2MDMxYzZiNDdkMDhmMWRjMDFjMzQxMjQzYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZi
YjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kMDgwYWViMGMxOTJkYTA0ODAzMzFiZWE1
MWJmZTcwZDJmNGNlNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM2LDYgKzEzNiw3IEBAIGNsYXNz
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjsK
IGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb247CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBT
dG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpAQCAtNzcw
LDYgKzc3MSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdMU3RhdGVU
cmFja2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uZ2V0KCk7IH0KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVl
Y2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVu
dC5nZXQoKTsgfQogI2VuZGlmCkBAIC05MDUsNiArOTEwLDEwIEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4
ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmU4ZWI4MDc2ODk5MzlkNTRhZGJm
MGY0NGIzMmZkOGMxNDU5ZWZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xh
c3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xh
c3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247
CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9u
IHsKQEAgLTExMiw2ICsxMTMsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gd2ViR0xTdGF0ZVRyYWNrZXI7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsK
KyNlbmRpZgogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4NjhkMjA2ZjBkZTE2ZjhjMmZmZDllNjBkNGVjYjAyMWI2ODY4NmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25FcnJvcjsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3BlZWNoUmVj
b2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2Fw
dHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRp
bygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE+JikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZDRlMGQ4Y2QyNjQzNzU5YjQ1MjM4ZjNjYmZiN2QyNTYxOGNj
NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVj
b2duaXRpb25DbGllbnQqLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9v
bCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KikgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2Jk
ZDk4MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uNTg1NmI2ZjgzMTRjYTY4ZjJkNDNlYTNlYWJh
YjBhY2I1ZDI2ZTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NDgsNiArNjQ4LDcgQEAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDk1NWRlOTFkY2NhMDI1MzgyOGMxMGVhNWQ4M2E2NGRlOTY1MjIwMDIu
LmQ1MjdmY2Q1NDQ0MzFkNWRmNTM1MzJmMTI1ZWQxMWI4ZDc5OGFiMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1Niw2ICsxMzU2
LDcgQEAKIAkJOTMzRTgzNTUyM0EwN0MwNjAwREVGMjg5IC8qIFdlYklEQlNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTMyM0EwN0JG
ODAwREVGMjg5IC8qIFdlYklEQlNlcnZlci5oICovOyB9OwogCQk5MzNFODM1QTIzQTFBRTI4MDBE
RUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJT
ZXJ2ZXJNZXNzYWdlcy5oICovOyB9OwogCQk5MzNFODM1QjIzQTFCNzUwMDBERUYyODkgLyogV2Vi
SURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5MzQ5NTA3NDI1MzhCMkNBMDA5OUYxNzEg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IH07CiAJCTkzNEI3MjQ0MTlGNUI5QkUw
MEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0Fj
dGlvbk1lbnVJdGVtVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07
CiAJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUwMjE1
MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCAqLzsgfTsKQEAgLTQ0MTAs
NiArNDQxMSw4IEBACiAJCTkzM0U4MzU3MjNBMUE4NzIwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCU2VydmVyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNFODM1ODIzQTFBREY1MDBERUYy
ODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzM0U4MzU5MjNBMUFERjUw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQk5MzQ5NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTA3MzI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25NZW51SXRlbVR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk1MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDUzMCw3ICs0NTMzLDcgQEAK
IAkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhDMjUzMTREODMwMEVDMTFB
QiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNJUENCaW5kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlCNDc5MDkwMjUz
MTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25z
LmNwcDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJn
dW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUI1NDk5QUMyMzYyQTZGNjAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25D
b25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFFMjM2MkE3QTcw
MERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMDIzNjJBN0VDMDBERjhCQTUgLyogX1dLVGV4
dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5
MTYsNiArODkxOSw4IEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291
cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdl
YlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzNDk1MDczMjUzOEIyQzIwMDk5RjE3MSAv
KiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJCTkzNDk1MDcyMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJ
CQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNw
cCAqLywKIAkJCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lz
Q2xpZW50LmggKi8sCiAJCQkJQzE0OTM4MEEyMjM4NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5
bnRoZXNpc1ZvaWNlLmggKi8sCkBAIC0xMTQ3OSw2ICsxMTQ4NCw3IEBACiAJCQkJNzFGQjgxMEIy
MjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9s
aWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2Vi
U29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZG
OTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTA3NDI1MzhCMkNBMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYwMzRBMDFBQ0IzNEQ2MDA2
MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ2MmZhOTBjNGFiNjA0MmUyNjkwZTFlYmU4ZmFmY2MxYjc2
YTk2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
V2ViUGFnZSYpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpz
dGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpz
dG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQpCit7Cit9CisKK3Zv
aWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9ydChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCogY2xpZW50KQoreworfQorCit9IC8vbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM1ZWU5OWJjZmNmYWQ2ODIwZGM5NmY0M2MzZjA4ZDhiNjliY2MzNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKwor
I2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpOworCisgICAgdm9pZCBzdGFydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBj
b250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMp
IGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCop
IGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQq
KSBmaW5hbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwNDYwYzZkNzYz
MzBiODliZjMxNzhhN2VjZDc2NDA4OTRmYWYxYWQ4Li4wNWY0Mjc2ODRhN2U5NTczYTIxYjI4MTIw
MmYxYWM2MWQ1Yzg0ZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCkBAIC01MjYsNiArNTI3LDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICB9KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBwYWdl
Q29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4oKnRoaXMpOworI2VuZGlmCisgICAgCiAjaWYg
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3lu
dGhlc2lzQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ+KCp0aGlz
KTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411484</attachid>
            <date>2020-10-15 14:00:08 -0700</date>
            <delta_ts>2020-10-15 14:03:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015140006.patch</filename>
            <type>text/plain</type>
            <size>120403</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiOTYzMGEyMjFkZmUxMDllYjZhMDA2
YzRkNDViMTBlOTJiNDJhYTkuLjVmZTQ5ZDc5OWVkYzRkMjVlNTMzZjNjYWUxYzBlY2JmMjNjZDE5
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBEaXNhbGxvdyBwb3J0cyBpbiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJm
ZDJiYzRhZjBjMmI2MzdiMDUyNzM5MGZmYjA4YjVkYmRiZGM5Li5kYTNkYjYzOWI2MjQ2ODkyNjhm
MWQyZmRiMWEzNjRiYTJhODg3ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDIw
LTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
OjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250
aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRD
b250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmlt
UmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0
SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1h
eEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50
SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVt
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW46CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBj
b25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBh
Z2UvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWls
ZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1Mjk4MjhlOTlhMWExZjIxMTUx
YjFmMzJmMWYwYWRhZTA0OTM4MTFlLi4yNzZlOWRiY2E2ZTJlZDBkOWQ4NzMwMzFkNDIwODliY2Ix
ZTU3MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTE1ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTAtMTQgIERv
biBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmll
ZCBidWlsZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCmluZGV4IGNkZDk5YjdmOTQyOGRlMTFhNGQxZjg5Njc0MTA2NTM4ZTY0NTY0NWUuLjMx
MTdlZjRkMzYyNmFlNTRiMGFiMjY0NWIyOTc0NmI3OWFiYjQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyNSw2ICs0MjUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1JF
U09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5B
QkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggODZhMDc3NDFmMzg0NDc5MjBhYTBlOTI3NjJi
ZDRlMGU2ZTYyZGQ3MC4uYmYxNTdlOWI3MGU5ZjMzNzhlOTk5MzU1ZTUzZWNhOTNhYjliYzQ4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBA
IC0yNzksNiArMjc5LDE0IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2
aWdhdG9yK1N0b3JhZ2VRdW90YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxh
eWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJh
Y2suaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVj
b2duaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTIxZmM4MDU2MTI0ZWJlYWEwOTJk
MmZjOGY2NmU0NzY2ZDI4NmYwZS4uYzk0MzVmY2FlZGQ1YTg2ZGViOWJkYTU1NTczNGQ5ZGQ3NDY0
NGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTU0Nyw2ICs1NDcsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTZWxlY3Rpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTZWxlY3Rpb24uaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU3Bl
ZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3crU3BlZWNoUmVjb2duaXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNET01XaW5kb3crVmlzdWFsVmlld3BvcnQuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytWaXN1YWxWaWV3cG9y
dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvdytXZWJEYXRhYmFzZS5jcHAKQEAgLTU2MSw2ICs1NjMsOCBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dRdW90YS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2Vi
R1BVLmNwcApAQCAtMjEwNSw2ICsyMTA5LDIwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZm
ZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDY1MTNiOGJlYzM1MTdmN2RiYzQ2MzAyZGQ2OTkyZDI0ZThhMjBkZDQuLjFmMDU0N2Vh
MWUwZGRmMGI5YzFmZDRjNjZiOTJkMTg4ODM1YmMxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzc2LDYgKzM3NiwxNCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlk
bCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVM
ZW5ndGhRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFt
cy9Db3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRp
b24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzYTQzYTY0YjVjMWI2NzEzNDM2OWM3NTI3YTlmYWYwOTQ0ZGFl
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxlbWVudGVk
Qnk9RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24KK10gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2lu
ZG93IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb24gc3BlZWNoUmVj
b2duaXRpb247CisgICAgW0ltcGxlbWVudGVkQXM9c3BlZWNoUmVjb2duaXRpb25dIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNiYzJlYmQ1ZTk1YmY5MzlmOGE3
MDQ3NTg4ODZlMzliODE1YTVkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbihET01XaW5kb3cqIHdpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdp
bmRvdykKK3sKK30KKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246On5ET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbigpID0gZGVmYXVsdDsKKworY29uc3QgY2hhciogRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb246OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkRPTVdpbmRvd1Nw
ZWVjaFJlY29nbml0aW9uIjsKK30KKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24qIERPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERP
TVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24qPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20od2luZG93
LCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIGF1
dG8gbmV3U3VwcGxlbWVudCA9IG1ha2VVbmlxdWU8RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24+
KHdpbmRvdyk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAg
ICAgICBwcm92aWRlVG8od2luZG93LCBzdXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBs
ZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oRE9N
V2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
Ojpmcm9tKCZ3aW5kb3cpLT5zcGVlY2hSZWNvZ25pdGlvbigpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvbiogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVjaFJlY29nbml0aW9uKCkKK3sK
KyAgICBhdXRvKiB3aW5kb3cgPSB0aGlzLT53aW5kb3coKTsKKyAgICBpZiAoIXdpbmRvdykKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNw
bGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogZG9j
dW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHBhZ2UtPmlz
Q2xvc2luZygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV9zcGVlY2hS
ZWNvZ25pdGlvbikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbiA9IFNwZWVjaFJlY29nbml0
aW9uOjpjcmVhdGUoKmRvY3VtZW50KTsKKworICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9u
LmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkYmI3
MGUxZjA4OGFhOGQwYTUxZDU4MmExNTdkMzI3MGQwYjNmYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworY2xhc3MgRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBw
dWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIGV4cGxpY2l0IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKERPTVdpbmRv
dyopOworICAgIHZpcnR1YWwgfkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb24qIHNwZWVjaFJlY29nbml0aW9u
KERPTVdpbmRvdyYpOworICAgIHN0YXRpYyBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogZnJv
bShET01XaW5kb3cqKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNo
UmVjb2duaXRpb24oKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsK
KworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM0NTA0OWMzNWFkZTQyNzc2OThjMDk3N2Y5MmY1
MWU4NzkwN2NjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNv
Z25pdGlvbik7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVj
aFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChk
b2N1bWVudCkKK3sKKyAgICBhdXRvKiBjbGllbnQgPSBkb2N1bWVudC5wYWdlKCktPnNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpOworICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
ID0gbWFrZVdlYWtQdHIoKmNsaWVudCk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNo
UmVjb2duaXRpb24oKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZyB8fCBt
X3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICBhYm9ydCgpOworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQoKQoreworICAgIGlmIChtX3N0YXRl
ICE9IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJf
cyB9OworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24tPnN0YXJ0KHRoaXMsIG1f
bGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFsdGVybmF0aXZlcyk7
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKKworICAgIHJldHVybiB7IH07Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3AoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0
YXRlOjpTdGFydGluZyAmJiBtX3N0YXRlICE9IFN0YXRlOjpSdW5uaW5nKSB7CisgICAgICAgIExP
R19FUlJPUigiUmVjb2duaXRpb24gaXMgYmVpbmcgc3RvcHBlZCBvciBhbHJlYWR5IHN0b3BwZWQu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi0+c3RvcCh0aGlzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0g
U3RhdGU6OlN0YXJ0aW5nICYmIG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdG9wcGVkIG9yIGFscmVhZHkgc3RvcHBl
ZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLT5hYm9ydCh0aGlzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAgbV9zdGF0ZSA9
IFN0YXRlOjpSdW5uaW5nOworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
YXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
b3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3Vu
ZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5k
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5v
bWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJZGxlOworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisKKyAgICBpZiAo
IWVycm9yLmlzTnVsbCgpKSAKKyAgICAgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgKmVycm9yLmNvZGUs
IGVycm9yLm1lc3NhZ2UpKTsKKyAgICBlbHNlCisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRS
ZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBy
ZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4g
YWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0
cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVj
dG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXgg
PSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERh
dGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+
IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3Vs
dERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3Jp
cHQsIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0
ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyks
IHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsK
KyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAg
ICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMu
YXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0
ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRz
KSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJl
c3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0
aW9uIjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzMTM3MDJjOWI1MDE1NmIwY2E3MzczNmYxOWZlY2NjZWU1ZDk2M2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBA
IC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJ
bmxpbmVEYXRhICB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlv
bik7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERv
Y3VtZW50Jik7CisgICAgflNwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcm
IGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3Qg
U3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhi
b29sIGNvbnRpbnVvdXMpIHsgbV9jb250aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9v
bCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAg
ICB2b2lkIHNldEludGVyaW1SZXN1bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmlt
UmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2
ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4
QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1heEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZl
cyA9IG1heEFsdGVybmF0aXZlczsgfQorCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnQoKTsK
KyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGFib3J0KCk7CisKKyAgICAvLyBUT0RPOiBtYWtl
IHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhPiYpIGZpbmFsOworCisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3Rh
dGUgeworICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBp
bmcsCisgICAgICAgIEFib3J0aW5nLAorICAgICAgICBJZGxlLAorICAgIH07CisgICAgU3BlZWNo
UmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdDsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsg
fQorCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJZGxlIH07CisgICAgLy8gVE9ETzogZGVj
aWRlIGRlZmF1bHQgbGFuZ3VhZ2UuCisgICAgU3RyaW5nIG1fbGFuZzsKKyAgICBib29sIG1fY29u
dGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsK
KyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisK
KyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM1MmViY2VlZTk0MjEyZTJhNGFjNjRlYjhiOTI3ZDdkYThiNmRjYjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBBY3RpdmVET01PYmplY3QsCisg
ICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93Citd
IGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbiB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBj
b25zdHJ1Y3RvcigpOworCisgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJp
YnV0ZSBib29sZWFuIGNvbnRpbnVvdXM7CisgICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJl
c3VsdHM7CisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisg
ICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICB1bmRlZmluZWQg
c3RvcCgpOworICAgIHVuZGVmaW5lZCBhYm9ydCgpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmF1ZGlvc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kc3Rh
cnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaHN0YXJ0OworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zcGVlY2hlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnNvdW5kZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb2VuZDsKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzdWx0OworICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25ub21hdGNoOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmVuZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5
MjdiYzE5MmIzOWI3YWYwNDZmZDJmYTI5ZjRhYWVhOTUzNzgyZDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKworI2lmIEVOQUJM
RShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmU+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUodHJhbnNjcmlwdCwgY29uZmlkZW5j
ZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2Up
CisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNjcmlwdCkKKyAgICAsIG1fY29uZmlkZW5jZShjb25m
aWRlbmNlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNmUxMWY5ZGI3NTEwOGQyMjhkMmJhMjQ2Mjhl
Zjc0MzRhZmIyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikK
KworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNl
KTsKKworICAgIFN0cmluZyB0cmFuc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NyaXB0
OyB9CisgICAgZG91YmxlIGNvbmZpZGVuY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZGVuY2U7
IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
KGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3Ry
aW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFlYWE0M2Q0Nzk2ZGQ5ODM3YmVjOWQyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlw
dDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmE5Y2E4NjNkZGUxOGVkZmY1M2VmM2U3NGQ0MmZjNjhhNWQ0MmFjYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGU+IGNvZGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICBib29sIGlzTnVsbCgp
IGNvbnN0IHsgcmV0dXJuICFjb2RlLmhhc1ZhbHVlKCk7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShE
ZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IGNvZGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvZGUpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2Fn
ZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQzODQzYjVjNmEwZTIzYWIyNWFmOWQ2NzQzMjEwYTk5NGExMjRjYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICBOb1Nw
ZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAg
IE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAg
ICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVk
YTkwYWRhN2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAg
KzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorXSBlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNo
IiwKKyAgICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwK
KyAgICAibm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFk
LWdyYW1tYXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUw
NjVmYmViYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKwor
UmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNU
cnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVy
cm9yLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9y
KGluaXQuZXJyb3IpCisgICAgLCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAs
IG1fbWVzc2FnZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRi
NWZmZjFjZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQp
OworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAg
IH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpO
byk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21l
c3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1f
ZXJyb3I7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2
MjY1ZDNjOTdhNGQ0YzE5MGU3M2Q4NTc4YmUwMjlkNDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BF
RUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCk7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25h
cnkgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVx
dWlyZWQgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1l
c3NhZ2UgPSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEy
MTdlNzE1MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5p
dCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3Qg
cmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0
cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5
cGUsIHJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUs
IGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkK
KyAgICAsIG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
RXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWlu
dDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYg
cmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAg
LCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2Fm
YTYyNDY3MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6
IEV2ZW50SW5pdCB7CisgICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBz
dGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50
NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7
CisKKyAgICB1aW50NjRfdCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5k
ZXg7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7
IHJldHVybiBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1
bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBF
dmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWlu
dDY0X3QgbV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDhjM2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJk
MzQzMTFjMThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1X
aW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAg
Y29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3Vs
dEluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QgcmVzdWx0czsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQg
OiBFdmVudEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJl
cXVpcmVkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNjN2Y0ZjAw
OTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFs
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFdU
Rk1vdmUoYWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0
ZXJuYXRpdmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChpc0ZpbmFs
KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4
IDwgbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZkMWRkYzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUq
IGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYs
IGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNlIH07Cit9
OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRlM2E4MWU0
NTJlMmJjNTUxMzZkYTg3NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTEyODhlMDYwYTFmMzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJh
bnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJl
c3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7Cisg
ICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOWU3
YTA2MDVmMWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
Y3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0o
dWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlzdC5zaXpl
KCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkK
K3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RGTW92ZShs
aXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4MjYwNjZm
ZWU5NjU0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2
NF90IGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Jik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkgPSBkZWZh
dWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEwZTRiZDcz
MTFkYjgyOGIzZjIwZjlhNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwK
KyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGlu
dGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAppbmRleCA3MzY0YjRh
NmRhYzNlNDhiMGNmYzdiN2ZlYThkNzVhMGQxODg0YWE0Li4xZmZjMzlhZGRkMDBiYjkyNDdkOWYx
OGUwYTFmMzdjNzJiZThlN2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgogI2luY2x1
ZGUgIkF1ZGlvUGFyYW0uaCIKKyNpbmNsdWRlICJBdWRpb1BhcmFtRGVzY3JpcHRvci5oIgogI2lu
Y2x1ZGUgIkF1ZGlvUGFyYW1NYXAuaCIKICNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgIkF1ZGlvV29ya2xldC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NDgwNTExYzY5NzgxOTdl
ZDZmMjViMTFhODhlNjkwNGIwYTMyNDQyLi41YTdmYzFjNDVhOTY1NDNlYjFiODIzZGRmMzRjMDdj
Nzg5MTc0NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTgxLDYgKzE4MSwxMyBAQCBNb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1
bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMv
cmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9ET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcApAQCAtMzQ4Myw2ICszNDkwLDEzIEBAIEpTU2hhcmVEYXRhLmNwcAog
SlNTbG90YWJsZS5jcHAKIEpTU291cmNlQnVmZmVyLmNwcAogSlNTb3VyY2VCdWZmZXJMaXN0LmNw
cAorSlNTcGVlY2hSZWNvZ25pdGlvbi5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCitKU1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK0pTU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAK
IEpTU3BlZWNoU3ludGhlc2lzLmNwcAogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKIEpTU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdiNTMzZWY2YzVmNDRjZGI4N2RiYjgxMjEx
Nzg5NWMwY2RjMzFlZTMuLjM1NGQ1ZDQ5N2QxNDJiNmEzNjMwNTk0NTllYTNmMmJkYWIxZGRmMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI3MjYsNiArMjcyNiwxOCBAQAogCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyog
VGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLzsgfTsK
IAkJOTM0NDJDOUUwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0MkM5RDBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJOTM0
OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5MDdFMzEyNUJCQkM4MDA3RjIz
QTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTA2NDI1MzgxRDdCMDA5OUYxNzEgLyogRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNDk1MDYzMjUzODFDMDgwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbi5oICovOyB9OworCQk5MzQ5NTA2ODI1MzgxREM2MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MDY2MjUzODFEQkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovOyB9Owor
CQk5MzQ5NTA2QzI1MzgyNTk3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDZBMjUz
ODI1OTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MDcxMjUzOEIwNUYwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDcwMjUzOEIwNUYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTA3QTI1MzhDMTU3MDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwNzcyNTM4QzE1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCAqLzsgfTsKKwkJOTM0OTUwN0YyNTM4QzI3NDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTA3QzI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCAqLzsgfTsKKwkJOTM0OTUwODYyNTM4QzM5NTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0OTUwODMyNTM4QzM5NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oICovOyB9OworCQk5MzQ5NTA4ODI1MzhDRDYxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTA4NzI1MzhDRDYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi87IH07CisJCTkzNDk1MDhBMjUzOEQyNzgwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzQ5NTA4OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovOyB9OworCQk5MzQ5NTA4RDI1MzhEMzFCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDk1MDhCMjUzOEQzMTkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oICovOyB9OworCQk5MzQ5NTA5MjI1MzhEMzZGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTA4RjI1MzhEMzZFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmggKi87IH07CisJCTkzNDk1MDlBMjUzOEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5NTA5NzI1MzhFMDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
ICovOyB9OwogCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Q0MxMDkw
RURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLzsgfTsKIAkJOTM0RjcxM0Ew
RDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxMzkwRDVBNkYxMDAw
MDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2
OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JC
YXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTExMjM0LDYgKzExMjQ2LDMzIEBACiAJCTkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3
RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwNjAyNTM4MUMwNzAwOTlGMTcxIC8qIERPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkRPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTA2MjI1MzgxQzA4MDA5OUYxNzEgLyogRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93U3BlZWNoUmVj
b2duaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2MzI1Mzgx
QzA4MDA5OUYxNzEgLyogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwNjUyNTM4MURCRTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNjYyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MDY3MjUzODFEQkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzQ5NTA2QTI1MzgyNTk2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzAyNTM4QjA1
RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzUyNTM4QzE1NTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTA3NjI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUw
NzcyNTM4QzE1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3QjI1MzhDMjcyMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTA3QzI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwN0Qy
NTM4QzI3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MDgxMjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDgy
MjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODMyNTM4QzM5NTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODcyNTM4Q0Q2MTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwODkyNTM4RDI3NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4QjI1MzhEMzE5MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0OTUwOEMyNTM4RDMxQTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDhGMjUzOEQz
NkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDkwMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTEyNTM4RDM2RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTUy
NTM4RTAzQjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDk2MjUzOEUwM0IwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUw
OTcyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0
U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTb3Vy
Y2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM3MEQ1QTZFRkYw
MDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjE4MDMsNiArMjE4NDIsOCBAQAogCQkJCTVDN0M4OEQ3MUQwRjFGMkIw
MDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFF
NUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTM0OTUwNkEyNTM4MjU5NjAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTM0OTUwNzAyNTM4
QjA1RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJCUMx
NDkzODA1MjIzNDI3MTkwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJ
CQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJ
CQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAg
LTI1MzE5LDkgKzI1MzYwLDM0IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVl
Y2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTkzNDk1
MDYwMjUzODFDMDcwMDk5RjE3MSAvKiBET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsICov
LAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhl
c2lzLmlkbCAqLywKKwkJCQk5MzQ5NTA2MjI1MzgxQzA4MDA5OUYxNzEgLyogRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uY3BwICovLAorCQkJCTkzNDk1MDYzMjUzODFDMDgwMDk5RjE3MSAvKiBE
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3
NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZB
NDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKKwkJCQk5MzQ5
NTA2NTI1MzgxREJFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uY3BwICovLAorCQkJCTkz
NDk1MDY2MjUzODFEQkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovLAorCQkJCTkz
NDk1MDY3MjUzODFEQkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8sCisJCQkJ
OTM0OTUwNzYyNTM4QzE1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwICovLAorCQkJCTkzNDk1MDc3MjUzOEMxNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmggKi8sCisJCQkJOTM0OTUwNzUyNTM4QzE1NTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzNDk1MDg5MjUzOEQyNzcwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8sCisJCQkJOTM0OTUwOEIyNTM4RDMx
OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCisJCQkJOTM0OTUw
OEMyNTM4RDMxQTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywK
KwkJCQk5MzQ5NTA5MDI1MzhEMzZFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTA4RjI1MzhEMzZFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggKi8sCisJCQkJOTM0OTUwOTEyNTM4RDM2RjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJOTM0OTUwOTUyNTM4RTAzQjAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MDk3MjUz
OEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCisJCQkJOTM0OTUw
OTYyNTM4RTAzQjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTkzNDk1MDdCMjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAg
Ki8sCisJCQkJOTM0OTUwN0MyNTM4QzI3MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmggKi8sCisJCQkJOTM0OTUwN0QyNTM4QzI3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5MzQ5NTA4NzI1MzhDRDYxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8sCisJCQkJOTM0OTUwODIyNTM4QzM5NDAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCisJCQkJOTM0OTUwODMyNTM4
QzM5NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAorCQkJCTkz
NDk1MDgxMjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRs
ICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3Bw
ICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAq
LywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAq
LywKQEAgLTMwNjU0LDcgKzMwNzIwLDYgQEAKIAkJCQk1MTc0MUQwRjBCMDcyNTlBMDBFRDQ0MkMg
LyogQmFja0ZvcndhcmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDODFFMTFFM0Qz
NjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQTFCODdEMjA4N0M0QzAwMDk3OUE3NSAvKiBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjk0NzIxNzI1MzIzQzIxMDBGMTUzQzggLyogQmFja2dyb3Vu
ZEltYWdlR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RUU4MEMyNjQxQ0QwMDlF
MjM0OSAvKiBCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBCQjYxNjFEMEExQkYwMDAy
MjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzE5OEZCRjI0
QTE2MEREMDA0MjBCMDUgLyogQmFzZUF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MTMyMiw2ICszMTM4Nyw3IEBACiAJCQkJNTE4NUZDNzUxQkI0QzRFODAwMTI4OThGIC8qIERPTVdp
bmRvd0luZGV4ZWREYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdEMkFEMDQxNEI4MjNB
NjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUY2
MEIxMTE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNDk1MDY0MjUzODFEN0IwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDYxNkE0ODYxNjAwOTc1QTI1IC8qIERPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDQ0JCNDkxNTFGODMx
NjAwQUI3Q0U5IC8qIERPTVdpbmRvd1dlYkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzUzREEyRTExNDMxMjFFMDAwRDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmggaW4gSGVhZGVycyAq
LywKQEAgLTMzOTgzLDYgKzM0MDQ5LDE3IEBACiAJCQkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAw
IC8qIFNvdXJjZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMUEyN0FFMTBDOUJGRDgw
MDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjZDREUw
RjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNDk1MDY4MjUzODFEQzYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTM0OTUwN0EyNTM4QzE1NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDZDMjUzODI1OTcwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0
OTUwNzEyNTM4QjA1RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwOEEyNTM4RDI3ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDhEMjUzOEQzMUIwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0
OTUwOTIyNTM4RDM2RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwOUEyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDdGMjUzOEMyNzQwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUw
ODgyNTM4Q0Q2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTM0OTUwODYyNTM4QzM5NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0
NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggNzJjZmFhNWViMDc1OTYw
YTczN2ZiZTIzNTFlNTQ5ZGQ0NDRjN2Y2My4uNzYwM2U1Y2U4NmJhMWYwODdmOTE4YjM4MzUxNTNk
ZWI3ZTJkN2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAg
UlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENEVE1GVG9uZUNoYW5n
ZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgY29u
ZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCitTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCitT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50IGNvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTgogU3Bl
ZWNoU3ludGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwogV2ViR0xDb250
ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0b3JhZ2VFdmVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggMzAxNzEwMDQ0ZmYxM2ExNGMwMjI4ZGEzODkw
MmQzZTdkMzM3N2MxMi4uYmEyMzRhNDNjMzIxNjM1NGUwYTM1NGM4ZGJjMTE3YTU0ZDFlMTA1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC00NCw2ICs0NCw3
IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBjb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUgog
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBjb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUgogU291
cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogU291cmNlQnVmZmVyTGlzdCBjb25k
aXRpb25hbD1NRURJQV9TT1VSQ0UKK1NwZWVjaFJlY29nbml0aW9uIGNvbmRpdGlvbmFsPVNQRUVD
SF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVD
SF9TWU5USEVTSVMKIFRleHRUcmFjayBjb25kaXRpb25hbD1WSURFTwogVGV4dFRyYWNrQ3VlIGNv
bmRpdGlvbmFsPVZJREVPCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA1YjA5MzJhY2JiYjEyMjcwYmRm
YTI2ODlkN2MyMDc3OTQ4MTllNjc5Li5kN2U0ZGI1ODQ2OTMyNjAzMWM2YjQ3ZDA4ZjFkYzAxYzM0
MTI0M2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNWFi
YjM1MGM2YmI5MWI0ZThmMGI5NTI5OWRhYTQ0Yjg4OGJiMWFkNS4uZDA4MGFlYjBjMTkyZGEwNDgw
MzMxYmVhNTFiZmU3MGQyZjRjZTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTEzNiw2ICsxMzYsNyBA
QCBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI7CiBjbGFzcyBTZXR0aW5nczsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50Owog
Y2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsK
QEAgLTc3MCw2ICs3NzEsMTAgQEAgcHVibGljOgogICAgIFdlYkdMU3RhdGVUcmFja2VyKiB3ZWJH
TFN0YXRlVHJhY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xTdGF0ZVRyYWNrZXIuZ2V0KCk7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24qIHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmdldCgpOyB9CisjZW5kaWYK
KwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVu
dCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVz
aXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgpAQCAtOTA1LDYgKzkxMCwxMCBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gbV93ZWJHTFN0YXRlVHJhY2tl
cjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gbV9zcGVlY2hTeW50aGVzaXND
bGllbnQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRl
eCBmMjg0ODgyNmE2YjAwZGQ0MjA4OTA3MTI5NjMyNTRkOTkzMjcyZWM4Li5lOGViODA3Njg5OTM5
ZDU0YWRiZjBmNDRiMzJmZDhjMTQ1OWVmZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVy
bjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9y
ZTsKIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogCiBjbGFzcyBQYWdlQ29uZmln
dXJhdGlvbiB7CkBAIC0xMTIsNiArMTEzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJHTCkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2Vy
OwogI2VuZGlmCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb247CisjZW5kaWYKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBzcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODY4ZDIwNmYwZGUxNmY4YzJmZmQ5ZTYwZDRlY2IwMjFiNjg2ODZmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RvcENhcHR1cmluZ1NvdW5kKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmROb01hdGNoKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChjb25zdCBWZWN0b3I8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhPiYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmQ0ZTBkOGNkMjY0Mzc1OWI0NTIzOGYzY2JmYjdk
MjU2MThjYzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50OworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVv
dXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhYm9ydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCopID0gMDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGRhZjVm
YjczMTNiZGQ5ODA2OGRlZGQzOWNiYWM0ZGZiZTkzNzdjYTguLjU4NTZiNmY4MzE0Y2E2OGYyZDQz
ZWEzZWFiYWIwYWNiNWQyNmUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNjQ4LDYgKzY0OCw3IEBAIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAogCiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA5NTVkZTkxZGNjYTAyNTM4MjhjMTBlYTVkODNhNjRkZTk2
NTIyMDAyLi5kNTI3ZmNkNTQ0NDMxZDVkZjUzNTMyZjEyNWVkMTFiOGQ3OThhYjBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTYs
NiArMTM1Niw3IEBACiAJCTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzUz
MjNBMDdCRjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCAqLzsgfTsKIAkJOTMzRTgzNUEyM0Ex
QUUyODAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyog
V2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5
IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2Vi
SURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTM0OTUwNzQyNTM4QjJDQTAw
OTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcx
IC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzRCNzI0NDE5
RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYg
LyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
ICovOyB9OwogCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JB
MDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi87IH07CkBA
IC00NDEwLDYgKzQ0MTEsOCBAQAogCQk5MzNFODM1NzIzQTFBODcyMDBERUYyODkgLyogV2ViSURC
U2VydmVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQlNlcnZlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzRTgzNTgyM0ExQURG
NTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzNFODM1OTIz
QTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwNzMyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5NTEyNzc2MTZEMDAzMzIyQjgg
LyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MzAsNyArNDUz
Myw3IEBACiAJCTlCMTIyOUQwMjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3OTA4QzI1MzE0RDgz
MDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QjQ3OTA4RTI1MzE1MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSVBDQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjQ3
OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVz
c2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlCNTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9u
Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBRTIz
NjJBN0E3MDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdFQzAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Rl
eHRNYW5pcHVsYXRpb25FeGNsdXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC04OTE2LDYgKzg5MTksOCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIz
OSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5MzQ5NTA3MzI1MzhCMkMyMDA5
OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5MzQ5
NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8sCiAJCQkJQzE0OTM4MDMyMjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5jcHAgKi8sCiAJCQkJQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oICovLAogCQkJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAvKiBXZWJT
cGVlY2hTeW50aGVzaXNWb2ljZS5oICovLApAQCAtMTE0NzksNiArMTE0ODQsNyBAQAogCQkJCTcx
RkI4MTBCMjI2MDYyN0UwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNw
YXRjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdF
IC8qIFdlYlNvY2tldENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMw
RDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM0OTUwNzQyNTM4QjJDQTAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNC
MzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhZDFkZDhkNmE5YjI5Y2E4ZmFiYTkzMmM5MDgx
YTU5MDNkOTdmMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNP
R05JVElPTikKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKFdlYlBhZ2UmKQoreworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqLCBjb25zdCBTdHJp
bmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3Qg
bWF4QWx0ZXJuYXRpdmVzKQoreworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCogY2xpZW50KQorewor
fQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzVlZTk5YmNmY2ZhZDY4MjBkYzk2ZjQzYzNmMDhkOGI2OWJj
YzM1ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklU
SU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihXZWJQYWdlJik7CisKKyAgICB2b2lkIHN0
YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBsYW5n
LCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVy
bmF0aXZlcykgZmluYWw7CisgICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCopIGZpbmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA0
NjBjNmQ3NjMzMGI4OWJmMzE3OGE3ZWNkNzY0MDg5NGZhZjFhZDguLjA1ZjQyNzY4NGE3ZTk1NzNh
MjFiMjgxMjAyZjFhYzYxZDVjODRmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAKICNpbmNsdWRlICJXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2luY2x1ZGUg
IldlYlRvdWNoRXZlbnQuaCIKQEAgLTUyNiw2ICs1MjcsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogICAgIH0pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA9IG1ha2VV
bmlxdWU8V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPigqdGhpcyk7CisjZW5kaWYKKyAg
ICAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5z
cGVlY2hTeW50aGVzaXNDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dD4oKnRoaXMpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411485</attachid>
            <date>2020-10-15 14:03:05 -0700</date>
            <delta_ts>2020-10-15 15:27:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015140302.patch</filename>
            <type>text/plain</type>
            <size>119847</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiOTYzMGEyMjFkZmUxMDllYjZhMDA2
YzRkNDViMTBlOTJiNDJhYTkuLjVmZTQ5ZDc5OWVkYzRkMjVlNTMzZjNjYWUxYzBlY2JmMjNjZDE5
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBEaXNhbGxvdyBwb3J0cyBpbiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJm
ZDJiYzRhZjBjMmI2MzdiMDUyNzM5MGZmYjA4YjVkYmRiZGM5Li5kYTNkYjYzOWI2MjQ2ODkyNjhm
MWQyZmRiMWEzNjRiYTJhODg3ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDIw
LTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
OjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0
dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250
aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRD
b250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmlt
UmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0
SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1h
eEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50
SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVt
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW46CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBj
b25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBh
Z2UvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgICogcGFnZS9TcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWls
ZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1Mjk4MjhlOTlhMWExZjIxMTUx
YjFmMzJmMWYwYWRhZTA0OTM4MTFlLi4yNzZlOWRiY2E2ZTJlZDBkOWQ4NzMwMzFkNDIwODliY2Ix
ZTU3MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTE1ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisKIDIwMjAtMTAtMTQgIERv
biBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmll
ZCBidWlsZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCmluZGV4IGNkZDk5YjdmOTQyOGRlMTFhNGQxZjg5Njc0MTA2NTM4ZTY0NTY0NWUuLjMx
MTdlZjRkMzYyNmFlNTRiMGFiMjY0NWIyOTc0NmI3OWFiYjQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyNSw2ICs0MjUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1JF
U09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5B
QkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggODZhMDc3NDFmMzg0NDc5MjBhYTBlOTI3NjJi
ZDRlMGU2ZTYyZGQ3MC4uYmYxNTdlOWI3MGU5ZjMzNzhlOTk5MzU1ZTUzZWNhOTNhYjliYzQ4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBA
IC0yNzksNiArMjc5LDE0IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2
aWdhdG9yK1N0b3JhZ2VRdW90YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxh
eWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJh
Y2suaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVj
b2duaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTIxZmM4MDU2MTI0ZWJlYWEwOTJk
MmZjOGY2NmU0NzY2ZDI4NmYwZS4uYzk0MzVmY2FlZGQ1YTg2ZGViOWJkYTU1NTczNGQ5ZGQ3NDY0
NGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTU0Nyw2ICs1NDcsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTZWxlY3Rpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTZWxlY3Rpb24uaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU3Bl
ZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3crU3BlZWNoUmVjb2duaXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNET01XaW5kb3crVmlzdWFsVmlld3BvcnQuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytWaXN1YWxWaWV3cG9y
dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvdytXZWJEYXRhYmFzZS5jcHAKQEAgLTU2MSw2ICs1NjMsOCBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dRdW90YS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2Vi
R1BVLmNwcApAQCAtMjEwNSw2ICsyMTA5LDIwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZm
ZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lz
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDY1MTNiOGJlYzM1MTdmN2RiYzQ2MzAyZGQ2OTkyZDI0ZThhMjBkZDQuLjFmMDU0N2Vh
MWUwZGRmMGI5YzFmZDRjNjZiOTJkMTg4ODM1YmMxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzc2LDYgKzM3NiwxNCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlk
bCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVM
ZW5ndGhRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFt
cy9Db3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRp
b24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzYTQzYTY0YjVjMWI2NzEzNDM2OWM3NTI3YTlmYWYwOTQ0ZGFl
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxlbWVudGVk
Qnk9RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24KK10gcGFydGlhbCBpbnRlcmZhY2UgRE9NV2lu
ZG93IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb24gc3BlZWNoUmVj
b2duaXRpb247CisgICAgW0ltcGxlbWVudGVkQXM9c3BlZWNoUmVjb2duaXRpb25dIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNiYzJlYmQ1ZTk1YmY5MzlmOGE3
MDQ3NTg4ODZlMzliODE1YTVkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbihET01XaW5kb3cqIHdpbmRvdykKKyAgICA6IERPTVdpbmRvd1Byb3BlcnR5KHdp
bmRvdykKK3sKK30KKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246On5ET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbigpID0gZGVmYXVsdDsKKworY29uc3QgY2hhciogRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb246OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkRPTVdpbmRvd1Nw
ZWVjaFJlY29nbml0aW9uIjsKK30KKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24qIERPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQoreworICAgIERP
TVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24qPihTdXBwbGVtZW50PERPTVdpbmRvdz46OmZyb20od2luZG93
LCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIGF1
dG8gbmV3U3VwcGxlbWVudCA9IG1ha2VVbmlxdWU8RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24+
KHdpbmRvdyk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgpOworICAg
ICAgICBwcm92aWRlVG8od2luZG93LCBzdXBwbGVtZW50TmFtZSgpLCBXVEZNb3ZlKG5ld1N1cHBs
ZW1lbnQpKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oRE9N
V2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9u
Ojpmcm9tKCZ3aW5kb3cpLT5zcGVlY2hSZWNvZ25pdGlvbigpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvbiogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVjaFJlY29nbml0aW9uKCkKK3sK
KyAgICBhdXRvKiB3aW5kb3cgPSB0aGlzLT53aW5kb3coKTsKKyAgICBpZiAoIXdpbmRvdykKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXdpbmRvdy0+aXNDdXJyZW50bHlEaXNw
bGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogZG9j
dW1lbnQgPSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHBhZ2UtPmlz
Q2xvc2luZygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghbV9zcGVlY2hS
ZWNvZ25pdGlvbikKKyAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbiA9IFNwZWVjaFJlY29nbml0
aW9uOjpjcmVhdGUoKmRvY3VtZW50KTsKKworICAgIHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9u
LmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkYmI3
MGUxZjA4OGFhOGQwYTUxZDU4MmExNTdkMzI3MGQwYjNmYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24uaCIKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworY2xhc3MgRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+LCBw
dWJsaWMgRE9NV2luZG93UHJvcGVydHkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIGV4cGxpY2l0IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKERPTVdpbmRv
dyopOworICAgIHZpcnR1YWwgfkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb24qIHNwZWVjaFJlY29nbml0aW9u
KERPTVdpbmRvdyYpOworICAgIHN0YXRpYyBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogZnJv
bShET01XaW5kb3cqKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNo
UmVjb2duaXRpb24oKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsK
KworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM0NTA0OWMzNWFkZTQyNzc2OThjMDk3N2Y5MmY1
MWU4NzkwN2NjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNv
Z25pdGlvbik7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVj
aFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChk
b2N1bWVudCkKK3sKKyAgICBhdXRvKiBjbGllbnQgPSBkb2N1bWVudC5wYWdlKCktPnNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbigpOworICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
ID0gbWFrZVdlYWtQdHIoKmNsaWVudCk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNo
UmVjb2duaXRpb24oKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZyB8fCBt
X3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICBhYm9ydCgpOworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQoKQoreworICAgIGlmIChtX3N0YXRl
ICE9IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJf
cyB9OworCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24tPnN0YXJ0KHRoaXMsIG1f
bGFuZywgbV9jb250aW51b3VzLCBtX2ludGVyaW1SZXN1bHRzLCBtX21heEFsdGVybmF0aXZlcyk7
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKKworICAgIHJldHVybiB7IH07Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3AoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0
YXRlOjpTdGFydGluZyAmJiBtX3N0YXRlICE9IFN0YXRlOjpSdW5uaW5nKSB7CisgICAgICAgIExP
R19FUlJPUigiUmVjb2duaXRpb24gaXMgYmVpbmcgc3RvcHBlZCBvciBhbHJlYWR5IHN0b3BwZWQu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi0+c3RvcCh0aGlzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0g
U3RhdGU6OlN0YXJ0aW5nICYmIG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdG9wcGVkIG9yIGFscmVhZHkgc3RvcHBl
ZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLT5hYm9ydCh0aGlzKTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7CisgICAgbV9zdGF0ZSA9
IFN0YXRlOjpSdW5uaW5nOworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5n
QXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
YXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
b3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1Nw
ZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
cGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3Vu
ZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkK
K3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5k
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5v
bWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpk
aWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpJZGxlOworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7CisKKyAgICBpZiAo
IWVycm9yLmlzTnVsbCgpKSAKKyAgICAgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgKmVycm9yLmNvZGUs
IGVycm9yLm1lc3NhZ2UpKTsKKyAgICBlbHNlCisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRS
ZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiBy
ZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4g
YWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0
cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVj
dG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXgg
PSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERh
dGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+
IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3Vs
dERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3Jp
cHQsIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0
ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyks
IHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsK
KyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAg
ICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMu
YXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0
ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRz
KSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJl
c3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0
aW9uIjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzMTM3MDJjOWI1MDE1NmIwY2E3MzczNmYxOWZlY2NjZWU1ZDk2M2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBA
IC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJ
bmxpbmVEYXRhICB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlv
bik7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERv
Y3VtZW50Jik7CisgICAgflNwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcm
IGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3Qg
U3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhi
b29sIGNvbnRpbnVvdXMpIHsgbV9jb250aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9v
bCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAg
ICB2b2lkIHNldEludGVyaW1SZXN1bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmlt
UmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2
ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4
QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1heEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZl
cyA9IG1heEFsdGVybmF0aXZlczsgfQorCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnQoKTsK
KyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGFib3J0KCk7CisKKyAgICAvLyBUT0RPOiBtYWtl
IHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmlu
Z1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFs
OworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhPiYpIGZpbmFsOworCisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3Rh
dGUgeworICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBp
bmcsCisgICAgICAgIEFib3J0aW5nLAorICAgICAgICBJZGxlLAorICAgIH07CisgICAgU3BlZWNo
UmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdDsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsg
fQorCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJZGxlIH07CisgICAgLy8gVE9ETzogZGVj
aWRlIGRlZmF1bHQgbGFuZ3VhZ2UuCisgICAgU3RyaW5nIG1fbGFuZzsKKyAgICBib29sIG1fY29u
dGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsK
KyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKyAgICBXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisK
KyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM1MmViY2VlZTk0MjEyZTJhNGFjNjRlYjhiOTI3ZDdkYThiNmRjYjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBBY3RpdmVET01PYmplY3QsCisg
ICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93Citd
IGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbiB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBj
b25zdHJ1Y3RvcigpOworCisgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJp
YnV0ZSBib29sZWFuIGNvbnRpbnVvdXM7CisgICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJl
c3VsdHM7CisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisg
ICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICB1bmRlZmluZWQg
c3RvcCgpOworICAgIHVuZGVmaW5lZCBhYm9ydCgpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmF1ZGlvc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kc3Rh
cnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaHN0YXJ0OworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25zcGVlY2hlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnNvdW5kZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb2VuZDsKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzdWx0OworICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25ub21hdGNoOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAg
ICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbmVuZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5
MjdiYzE5MmIzOWI3YWYwNDZmZDJmYTI5ZjRhYWVhOTUzNzgyZDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKworI2lmIEVOQUJM
RShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmU+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUodHJhbnNjcmlwdCwgY29uZmlkZW5j
ZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2Up
CisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNjcmlwdCkKKyAgICAsIG1fY29uZmlkZW5jZShjb25m
aWRlbmNlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNmUxMWY5ZGI3NTEwOGQyMjhkMmJhMjQ2Mjhl
Zjc0MzRhZmIyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikK
KworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNl
KTsKKworICAgIFN0cmluZyB0cmFuc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NyaXB0
OyB9CisgICAgZG91YmxlIGNvbmZpZGVuY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZGVuY2U7
IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
KGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3Ry
aW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFlYWE0M2Q0Nzk2ZGQ5ODM3YmVjOWQyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlw
dDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmE5Y2E4NjNkZGUxOGVkZmY1M2VmM2U3NGQ0MmZjNjhhNWQ0MmFjYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGU+IGNvZGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICBib29sIGlzTnVsbCgp
IGNvbnN0IHsgcmV0dXJuICFjb2RlLmhhc1ZhbHVlKCk7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShE
ZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IGNvZGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvZGUpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2Fn
ZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjQzODQzYjVjNmEwZTIzYWIyNWFmOWQ2NzQzMjEwYTk5NGExMjRjYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICBOb1Nw
ZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAg
IE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAg
ICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVk
YTkwYWRhN2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAg
KzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorXSBlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNo
IiwKKyAgICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwK
KyAgICAibm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFk
LWdyYW1tYXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUw
NjVmYmViYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKwor
UmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNU
cnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVy
cm9yLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1Ry
dXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9y
KGluaXQuZXJyb3IpCisgICAgLCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAs
IG1fbWVzc2FnZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRi
NWZmZjFjZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQp
OworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAg
IH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpO
byk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21l
c3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1f
ZXJyb3I7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2
MjY1ZDNjOTdhNGQ0YzE5MGU3M2Q4NTc4YmUwMjlkNDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BF
RUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCk7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25h
cnkgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVx
dWlyZWQgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1l
c3NhZ2UgPSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEy
MTdlNzE1MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5p
dCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3Qg
cmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0
cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5
cGUsIHJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUs
IGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkK
KyAgICAsIG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
RXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWlu
dDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYg
cmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAg
LCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVy
biBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2Fm
YTYyNDY3MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6
IEV2ZW50SW5pdCB7CisgICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBz
dGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50
NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7
CisKKyAgICB1aW50NjRfdCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5k
ZXg7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7
IHJldHVybiBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1
bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBF
dmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWlu
dDY0X3QgbV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDhjM2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJk
MzQzMTFjMThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1X
aW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAg
Y29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3Vs
dEluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QgcmVzdWx0czsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQg
OiBFdmVudEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJl
cXVpcmVkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNjN2Y0ZjAw
OTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFs
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFdU
Rk1vdmUoYWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0
ZXJuYXRpdmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChpc0ZpbmFs
KQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4
IDwgbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZkMWRkYzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUq
IGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYs
IGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNlIH07Cit9
OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRlM2E4MWU0
NTJlMmJjNTUxMzZkYTg3NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTEyODhlMDYwYTFmMzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJh
bnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJl
c3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7Cisg
ICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOWU3
YTA2MDVmMWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
Y3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0o
dWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlzdC5zaXpl
KCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkK
K3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RGTW92ZShs
aXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4MjYwNjZm
ZWU5NjU0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9saXN0LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2
NF90IGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Jik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkgPSBkZWZh
dWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEwZTRiZDcz
MTFkYjgyOGIzZjIwZjlhNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwK
KyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGlu
dGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk0
ODA1MTFjNjk3ODE5N2VkNmYyNWIxMWE4OGU2OTA0YjBhMzI0NDIuLjVhN2ZjMWM0NWE5NjU0M2Vi
MWI4MjNkZGYzNGMwN2M3ODkxNzQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODEsNiArMTgxLDEz
IEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9FbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5j
cHAKIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZS5jcHAKIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93
LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKK01vZHVsZXMv
c3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0zNDgzLDYgKzM0OTAsMTMgQEAgSlNT
aGFyZURhdGEuY3BwCiBKU1Nsb3RhYmxlLmNwcAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJj
ZUJ1ZmZlckxpc3QuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pT
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmNwcAogSlNTcGVlY2hTeW50aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmNwcAogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I1MzNlZjZjNWY0
NGNkYjg3ZGJiODEyMTE3ODk1YzBjZGMzMWVlMy4uMzU0ZDVkNDk3ZDE0MmI2YTM2MzA1OTQ1OWVh
M2YyYmRhYjFkZGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjcyNiw2ICsyNzI2LDE4IEBACiAJCTkzNDNDQjgyMTJGMjVF
NTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVj
VVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5o
ICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0Uz
MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MDY0MjUzODFEN0IwMDk5RjE3
MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNjMyNTM4MUMwODAwOTlGMTcxIC8qIERPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1MDY4MjUzODFEQzYwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwNjYyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmggKi87IH07CisJCTkzNDk1MDZDMjUzODI1OTcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0OTUwNkEyNTM4MjU5NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUw
NzEyNTM4QjA1RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNzAyNTM4QjA1
RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MDdBMjUzOEMxNTcwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA3NzI1MzhDMTU2MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTA3RjI1MzhDMjc0
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovOyB9OworCQk5MzQ5NTA4NjI1MzhDMzk1MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA4MzI1MzhDMzk1MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi87IH07CisJCTkzNDk1MDg4MjUzOENENjEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDg3MjUzOENENjEwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgfTsKKwkJOTM0OTUwOEEyNTM4RDI3ODAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDg5MjUzOEQyNzcwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggKi87IH07CisJCTkzNDk1MDhEMjUzOEQzMUIwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwOEIyNTM4RDMxOTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggKi87IH07CisJCTkzNDk1MDkyMjUzOEQzNkYwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDhGMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLzsgfTsKKwkJOTM0OTUwOUEyNTM4RTAzQzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDk3MjUzOEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmggKi87IH07CiAJCTkzNENDMTBBMEVEQjIyMzkwMEE2NThGMiAvKiBTY3Jp
cHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovOyB9
OwogCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRG
NzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0RjcxM0Mw
RDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyog
UmVzb3VyY2VFcnJvckJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTEyMzQsNiArMTEyNDYsMzMgQEAKIAkJOTM0NDJDOUQwRDJCMzM1QzAw
MzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNDQyQzlGMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29s
bGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDkw
N0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRDRy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTA2MDI1MzgxQzA3MDA5OUYxNzEgLyogRE9NV2luZG93K1NwZWVj
aFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDYyMjUzODFDMDgwMDk5RjE3MSAv
KiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDk1MDYzMjUzODFDMDgwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2NTI1MzgxREJFMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNjcyNTM4MURCRjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDZBMjUzODI1OTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTA3MDI1MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3NTI1MzhDMTU1MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MDc2MjUzOEMxNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTA3NzI1MzhDMTU2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDdC
MjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTA3RDI1MzhDMjczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODEyNTM4QzM5NDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwODIyNTM4QzM5NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTA4MzI1MzhDMzk1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4NzI1MzhDRDYxMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTA4OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDhCMjUz
OEQzMTkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4QzI1MzhEMzFBMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwOEYyNTM4RDM2RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTAyNTM4RDM2RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5MTI1MzhEMzZGMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTA5NTI1MzhFMDNCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTYyNTM4RTAz
QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTA5NzI1MzhFMDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNENDMTA5MEVEQjIyMzkwMEE2
NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdFNvdXJjZUNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0
RjcxMzcwRDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzkwRDVB
NkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTgwMyw2ICsyMTg0Miw4IEBACiAJCQkJNUM3
Qzg4RDcxRDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RF
MEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZD
REUwRDExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5MzQ5
NTA2QTI1MzgyNTk2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJ
CQk5MzQ5NTA3MDI1MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRp
bWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5oICovLApAQCAtMjUzMTksOSArMjUzNjAsMzQgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAw
OTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJOTM0OTUwNjAyNTM4MUMwNzAwOTlGMTcxIC8qIERPTVdpbmRvdytTcGVlY2hSZWNv
Z25pdGlvbi5pZGwgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
dytTcGVlY2hTeW50aGVzaXMuaWRsICovLAorCQkJCTkzNDk1MDYyMjUzODFDMDgwMDk5RjE3MSAv
KiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwNjMyNTM4MUMw
ODAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggKi8sCiAJCQkJQUEyQTVB
QjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJ
CQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5o
ICovLAorCQkJCTkzNDk1MDY1MjUzODFEQkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5j
cHAgKi8sCisJCQkJOTM0OTUwNjYyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
LmggKi8sCisJCQkJOTM0OTUwNjcyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
LmlkbCAqLywKKwkJCQk5MzQ5NTA3NjI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwNzcyNTM4QzE1NjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTA3NTI1MzhDMTU1MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUw
ODkyNTM4RDI3NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKKwkJCQk5
MzQ5NTA4QjI1MzhEMzE5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAq
LywKKwkJCQk5MzQ5NTA4QzI1MzhEMzFBMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaWRsICovLAorCQkJCTkzNDk1MDkwMjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MDhGMjUzOEQzNkUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTA5MTI1MzhEMzZG
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5
NTA5NTI1MzhFMDNCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJ
CQkJOTM0OTUwOTcyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAq
LywKKwkJCQk5MzQ5NTA5NjI1MzhFMDNCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwgKi8sCisJCQkJOTM0OTUwN0IyNTM4QzI3MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmNwcCAqLywKKwkJCQk5MzQ5NTA3QzI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaCAqLywKKwkJCQk5MzQ5NTA3RDI1MzhDMjczMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkzNDk1MDg3MjUzOENENjEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKKwkJCQk5MzQ5NTA4MjI1
MzhDMzk0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKKwkJ
CQk5MzQ5NTA4MzI1MzhDMzk1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmggKi8sCisJCQkJOTM0OTUwODEyNTM4QzM5NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaWRsICovLApAQCAtMzA2NTQsNyArMzA3MjAsNiBAQAogCQkJCTUxNzQxRDBGMEIw
NzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2FyZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNBOEM4MUUxMUUzRDM2OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFBMUI4N0QyMDg3QzRDMDAwOTc5QTc1IC8qIEJhY2tGb3J3YXJkSXRl
bUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTQ3MjE3MjUzMjNDMjEwMEYxNTND
OCAvKiBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRF
RTgwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEJC
NjE2MUQwQTFCRjAwMDIyMTgxMiAvKiBCYXNlNjRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTgzMTk4RkJGMjRBMTYwREQwMDQyMEIwNSAvKiBCYXNlQXVkaW9Db250ZXh0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxMzIyLDYgKzMxMzg3LDcgQEAKIAkJCQk1MTg1RkM3NTFCQjRDNEU4MDAx
Mjg5OEYgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0QyQUQwNDE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg5RjYwQjExMTU3RjY4NkUwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90YS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwNjQyNTM4MUQ3QjAwOTlGMTcxIC8qIERPTVdpbmRvd1Nw
ZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENjE2QTQ4NjE2MDA5
NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OENDQkI0OTE1MUY4MzE2MDBBQjdDRTkgLyogRE9NV2luZG93V2ViRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNTNEQTJFMTE0MzEyMUUwMDBEODE3RSAvKiBET01XcmFwcGVyV29ybGQu
aCBpbiBIZWFkZXJzICovLApAQCAtMzM5ODMsNiArMzQwNDksMTcgQEAKIAkJCQk4NEE4MUY0MjBG
QzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAx
QTI3QUUxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwNjgyNTM4MURDNjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3QTI1MzhDMTU3MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUw
NkMyNTM4MjU5NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ5NTA3MTI1MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA4QTI1MzhEMjc4MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwOEQy
NTM4RDMxQjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ5NTA5MjI1MzhEMzZGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA5QTI1MzhFMDNDMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwN0Yy
NTM4QzI3NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzQ5NTA4ODI1MzhDRDYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA4NjI1MzhDMzk1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFE
NDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3
MmNmYWE1ZWIwNzU5NjBhNzM3ZmJlMjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4
N2Y5MThiMzgzNTE1M2RlYjdlMmQ3YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAt
NjIsNiArNjIsOCBAQCBSVENEYXRhQ2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJU
Q0RUTUZUb25lQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rp
b25JY2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFs
PVdFQl9SVEMKK1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hf
UkVDT0dOSVRJT04KK1NwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OCiBTcGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhF
U0lTCiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEz
YTE0YzAyMjhkYTM4OTAyZDNlN2QzMzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMx
MTdhNTRkMWUxMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
QEAgLTQ0LDYgKzQ0LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNF
UlZJQ0VfV09SS0VSCiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJ
Q0VfV09SS0VSCiBTb3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VC
dWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29u
ZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29u
ZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBU
ZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkz
MmFjYmJiMTIyNzBiZGZhMjY4OWQ3YzIwNzc5NDgxOWU2NzkuLmQ3ZTRkYjU4NDY5MzI2MDMxYzZi
NDdkMDhmMWRjMDFjMzQxMjQzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3
IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5h
bWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCA1YWJiMzUwYzZiYjkxYjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kMDgw
YWViMGMxOTJkYTA0ODAzMzFiZWE1MWJmZTcwZDJmNGNlNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
MTM2LDYgKzEzNiw3IEBAIGNsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU29ja2V0UHJvdmlk
ZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBjbGFzcyBTcGVlY2hTeW50
aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyOwpAQCAtNzcwLDYgKzc3MSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0
ZVRyYWNrZXIqIHdlYkdMU3RhdGVUcmFja2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRl
VHJhY2tlci5nZXQoKTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uZ2V0
KCk7IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNo
U3ludGhlc2lzQ2xpZW50KiBzcGVlY2hTeW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudC5nZXQoKTsgfQogI2VuZGlmCkBAIC05MDUsNiArOTEwLDEw
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dl
YkdMU3RhdGVUcmFja2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZ
TlRIRVNJUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3Nw
ZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzgu
LmU4ZWI4MDc2ODk5MzlkNTRhZGJmMGY0NGIzMmZkOGMxNDU5ZWZmYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNv
bnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBW
aXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAKIGNs
YXNzIFBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTExMiw2ICsxMTMsOSBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFdFQkdMKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gd2Vi
R0xTdGF0ZVRyYWNrZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjsKKyNlbmRpZgogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lT
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRo
ZXNpc0NsaWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NjhkMjA2ZjBkZTE2ZjhjMmZmZDllNjBkNGVjYjAy
MWI2ODY4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKK3N0cnVjdCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2Fw
dHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291
bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFN0b3BDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5v
TWF0Y2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0
IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JikgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZDRlMGQ4Y2QyNjQzNzU5
YjQ1MjM4ZjNjYmZiN2QyNTYxOGNjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqLCBjb25zdCBTdHJpbmcmIGxhbmcs
IGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uNTg1NmI2
ZjgzMTRjYTY4ZjJkNDNlYTNlYWJhYjBhY2I1ZDI2ZTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NDgs
NiArNjQ4LDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAK
IFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1NWRlOTFkY2NhMDI1MzgyOGMx
MGVhNWQ4M2E2NGRlOTY1MjIwMDIuLmQ1MjdmY2Q1NDQ0MzFkNWRmNTM1MzJmMTI1ZWQxMWI4ZDc5
OGFiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTM1Niw2ICsxMzU2LDcgQEAKIAkJOTMzRTgzNTUyM0EwN0MwNjAwREVGMjg5IC8q
IFdlYklEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMzRTgzNTMyM0EwN0JGODAwREVGMjg5IC8qIFdlYklEQlNlcnZlci5oICovOyB9Owog
CQk5MzNFODM1QTIzQTFBRTI4MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU5MjNBMUFE
RjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovOyB9OwogCQk5MzNFODM1QjIz
QTFCNzUwMDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU4MjNBMUFERjUw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk5MzQ5
NTA3NDI1MzhCMkNBMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA3MjI1
MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IH07
CiAJCTkzNEI3MjQ0MTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEI3MjQzMTlG
NUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1
REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGll
bnRDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVERiAvKiBXZWJT
V1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rp
b24uaCAqLzsgfTsKQEAgLTQ0MTAsNiArNDQxMSw4IEBACiAJCTkzM0U4MzU3MjNBMUE4NzIwMERF
RjI4OSAvKiBXZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViSURCU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk5MzQ5NTA3MjI1MzhCMkMyMDA5OUYx
NzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3MzI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25N
ZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk1MTI3
NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDUzMCw3ICs0NTMzLDcgQEAKIAkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25JZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NDc5MDhDMjUzMTREODMwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCNDc5MDhFMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRp
bmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJUENCaW5kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTlCNDc5MDkwMjUzMTU2MzIwMEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNj
cmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0
aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNDc5MDkwMjUzMTU2MzIw
MEVDMTFBQiAvKiBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI1NDk5QUMyMzYyQTZGNjAwREY4QkE1IC8q
IF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Rl
eHRNYW5pcHVsYXRpb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCNTQ5OUFFMjM2MkE3QTcwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmln
dXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Db25m
aWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlCMDIzNjJB
N0VDMDBERjhCQTUgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkV4Y2x1c2lvblJ1bGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTg5MTYsNiArODkxOSw4IEBACiAJCQkJNDY3MUZGMUQyMzIxN0VG
RjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQx
MUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4
NDUxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzNDk1
MDczMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
ICovLAorCQkJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcg
LyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJQzE0OTM4MEEyMjM4NTNCRTAw
MENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCkBAIC0xMTQ3OSw2ICsxMTQ4
NCw3IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRN
b3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVBRjIy
NTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3NDI1MzhCMkNBMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4MzYwMzRBMDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkMWRkOGQ2YTliMjlj
YThmYWJhOTMyYzkwODFhNTkwM2Q5N2YxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCosIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1
bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KiBjbGllbnQpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjph
Ym9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCogY2xpZW50KQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWVlOTliY2ZjZmFkNjgyMGRjOTZm
NDNjM2YwOGQ4YjY5YmNjMzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBA
IC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwor
Y2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdlYlBhZ2UmKTsK
KworICAgIHZvaWQgc3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqLCBjb25z
dCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWlu
dDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50KikgZmluYWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMDQ2MGM2ZDc2MzMwYjg5YmYzMTc4YTdlY2Q3NjQwODk0ZmFmMWFkOC4uMDVm
NDI3Njg0YTdlOTU3M2EyMWIyODEyMDJmMWFjNjFkNWM4NGY2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2lu
Y2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VX
b3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVk
ZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyNywxMCBAQCBXZWJQ
YWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uID0gbWFrZVVuaXF1ZTxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCp0aGlz
KTsKKyNlbmRpZgorICAgIAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHBhZ2VD
b25maWd1cmF0aW9uLnNwZWVjaFN5bnRoZXNpc0NsaWVudCA9IG1ha2VVbmlxdWU8V2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50PigqdGhpcyk7CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="427714"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411497</attachid>
            <date>2020-10-15 15:11:27 -0700</date>
            <delta_ts>2020-10-15 19:47:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015151125.patch</filename>
            <type>text/plain</type>
            <size>121668</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiOTYzMGEyMjFkZmUxMDllYjZhMDA2
YzRkNDViMTBlOTJiNDJhYTkuLjVmZTQ5ZDc5OWVkYzRkMjVlNTMzZjNjYWUxYzBlY2JmMjNjZDE5
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBEaXNhbGxvdyBwb3J0cyBpbiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJm
ZDJiYzRhZjBjMmI2MzdiMDUyNzM5MGZmYjA4YjVkYmRiZGM5Li4wMjM0YjdkZDRlMDE3MjU4ZDYy
MGZlMGIzNDA0NGI2MWUzODNmMjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIw
LTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93
K1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZy
b20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVj
aFJlY29nbml0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVj
b2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29n
bml0aW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6
ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmVEYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbDogQWRkZWQuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaDog
QWRkZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRk
ZWQuCisKIDIwMjAtMTAtMTQgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
IAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA1Mjk4MjhlOTlhMWExZjIxMTUxYjFmMzJmMWYwYWRhZTA0OTM4MTFlLi5kMzc2MGIy
N2VjMmJhOWQyM2EyNDgyZmUyZmY5OGIzZTgyY2NjODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDIwLTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3Ap
OgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWlucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5jcHA6CisKIDIwMjAtMTAtMTQgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBz
b255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgbWlkIE9jdG9iZXIg
MjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIv
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IGNkZDk5YjdmOTQyOGRl
MTFhNGQxZjg5Njc0MTA2NTM4ZTY0NTY0NWUuLjMxMTdlZjRkMzYyNmFlNTRiMGFiMjY0NWIyOTc0
NmI3OWFiYjQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyNSw2
ICs0MjUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAj
ZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisj
ZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmZDllYmE2NGQxNDJlYmE0NTU4ZGJmMWIwMjI5NDQw
MGYwZWMyNmExLi42MTU0NGZhYmJhMWJhZGU2YjQ2ZDI5NTAwNWMyNGMxYmNmMWU1NWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDM2LDYgKzQzNiwxNSBAQCBzZXQoV2ViQ29yZV9OT05fU1ZH
X0lETF9GSUxFUwogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRs
CiAgICAgTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNh
bGxiYWNrLmlkbAogCisgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1JlY29nbml0aW9uLmlk
bAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbAorCiAgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwK
ICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA4NmEwNzc0MWYzODQ0NzkyMGFhMGU5Mjc2MmJk
NGUwZTZlNjJkZDcwLi5iZjE1N2U5YjcwZTlmMzM3OGU5OTkzNTVlNTNlY2E5M2FiOWJjNDhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAg
LTI3OSw2ICsyNzksMTQgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZp
Z2F0b3IrU3RvcmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9IVE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFj
ay5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNv
Z25pdGlvbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlMjFmYzgwNTYxMjRlYmVhYTA5MmQy
ZmM4ZjY2ZTQ3NjZkMjg2ZjBlLi5jOTQzNWZjYWVkZDVhODZkZWI5YmRhNTU1NzM0ZDlkZDc0NjQ0
ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdApAQCAtNTQ3LDYgKzU0Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVl
Y2hTeW50aGVzaXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRv
dytTcGVlY2hSZWNvZ25pdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytWaXN1YWxWaWV3cG9ydC5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1Zpc3VhbFZpZXdwb3J0
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2lu
ZG93K1dlYkRhdGFiYXNlLmNwcApAQCAtNTYxLDYgKzU2Myw4IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93UXVvdGEuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93
U3BlZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJH
UFUuY3BwCkBAIC0yMTA1LDYgKzIxMDksMjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZl
ckxpc3QuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aFN5bnRoZXNpcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNjUxM2I4YmVjMzUxN2Y3ZGJjNDYzMDJkZDY5OTJkMjRlOGEyMGRkNC4uMWYwNTQ3ZWEx
ZTBkZGYwYjljMWZkNGM2NmI5MmQxODg4MzViYzEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0zNzYsNiArMzc2LDE0IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlk
bCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxl
bmd0aFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L0NvdW50UXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlv
bi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDNhNDNhNjRiNWMxYjY3MTM0MzY5Yzc1MjdhOWZhZjA5NDRkYWVi
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdp
bmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50ZWRC
eT1ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbgorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5k
b3cgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiBzcGVlY2hSZWNv
Z25pdGlvbjsKKyAgICBbSW1wbGVtZW50ZWRBcz1zcGVlY2hSZWNvZ25pdGlvbl0gcmVhZG9ubHkg
YXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2JjMmViZDVlOTViZjkzOWY4YTcw
NDc1ODg4NmUzOWI4MTVhNWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsOTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OkRPTVdpbmRvd1NwZWVjaFJl
Y29nbml0aW9uKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2lu
ZG93KQoreworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6fkRPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uKCkgPSBkZWZhdWx0OworCitjb25zdCBjaGFyKiBET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24iOworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogRE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3cs
IHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0
byBuZXdTdXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbj4o
d2luZG93KTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAg
ICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxl
bWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworU3BlZWNoUmVjb2du
aXRpb24qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzcGVlY2hSZWNvZ25pdGlvbihET01X
aW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246
OmZyb20oJndpbmRvdyktPnNwZWVjaFJlY29nbml0aW9uKCk7Cit9CisKK1NwZWVjaFJlY29nbml0
aW9uKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oKQorewor
ICAgIGF1dG8qIHdpbmRvdyA9IHRoaXMtPndpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3Bs
YXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBkb2N1
bWVudCA9IHdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAocGFnZS0+aXND
bG9zaW5nKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFtX3NwZWVjaFJl
Y29nbml0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uID0gU3BlZWNoUmVjb2duaXRp
b246OmNyZWF0ZSgqZG9jdW1lbnQpOworCisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb24u
Z2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWRiYjcw
ZTFmMDg4YWE4ZDBhNTFkNTgyYTE1N2QzMjcwZDBiM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1
YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93
Kik7CisgICAgdmlydHVhbCB+RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNoUmVjb2duaXRpb24o
RE9NV2luZG93Jik7CisgICAgc3RhdGljIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBmcm9t
KERPTVdpbmRvdyopOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hS
ZWNvZ25pdGlvbigpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwor
CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9SRUNP
R05JVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzQ1MDQ5YzM1YWRlNDI3NzY5OGMwOTc3ZjkyZjUx
ZTg3OTA3Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29n
bml0aW9uKTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVl
Y2hSZWNvZ25pdGlvbihkb2N1bWVudCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNo
UmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRv
Y3VtZW50KQoreworICAgIGF1dG8qIGNsaWVudCA9IGRvY3VtZW50LnBhZ2UoKS0+c3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uKCk7CisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
PSBtYWtlV2Vha1B0cigqY2xpZW50KTsKK30KKworU3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hS
ZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nIHx8IG1f
c3RhdGUgPT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIGFib3J0KCk7Cit9CisKK0V4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUg
IT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9z
IH07CisKKyAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RhcnQodGhpcywgbV9s
YW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsK
KyAgICBtX3N0YXRlID0gU3RhdGU6OlN0YXJ0aW5nOworCisgICAgcmV0dXJuIHsgfTsKK30KKwor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3Rh
dGU6OlN0YXJ0aW5nICYmIG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdG9wcGVkIG9yIGFscmVhZHkgc3RvcHBlZC4i
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLT5zdG9wKHRoaXMpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0KCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBT
dGF0ZTo6U3RhcnRpbmcgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBM
T0dfRVJST1IoIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVk
LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24tPmFib3J0KHRoaXMpOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0YXRlID0g
U3RhdGU6OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5h
dWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nv
dW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNv
dW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5k
ZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQor
eworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9t
YXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRp
ZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OklkbGU7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKworICAgIGlmICgh
ZXJyb3IuaXNOdWxsKCkpIAorICAgICAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCAqZXJyb3IuY29kZSwg
ZXJyb3IubWVzc2FnZSkpOworICAgIGVsc2UKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJl
Y2VpdmVSZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJl
c3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBh
bGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1bHRz
LnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRWZWN0
b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJbmRleCA9
IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0RGF0
YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4g
YWx0ZXJuYXRpdmVzOworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDogcmVzdWx0
RGF0YS5hbHRlcm5hdGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMuYXBwZW5kKFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlw
dCwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKyAgICAgICAgYXV0byBuZXdSZXN1bHQg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwg
cmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgewor
ICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAg
ICArK25vbkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5h
cHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3Qg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMp
KTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVz
dWx0TGlzdC5nZXQoKSkpKTsKK30KKworY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRp
b24iOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzMxMzcwMmM5YjUwMTU2YjBjYTczNzM2ZjE5ZmVjY2NlZTVkOTYzYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAg
LTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJs
aWMgU3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEgIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9u
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9j
dW1lbnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYg
bGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQorICAgIHZvaWQgc2V0TGFuZyhjb25zdCBT
dHJpbmcmIGxhbmcpIHsgbV9sYW5nID0gbGFuZzsgfQorCisgICAgYm9vbCBjb250aW51b3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgdm9pZCBzZXRDb250aW51b3VzKGJv
b2wgY29udGludW91cykgeyBtX2NvbnRpbnVvdXMgPSBjb250aW51b3VzOyB9CisKKyAgICBib29s
IGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmltUmVzdWx0czsgfQorICAg
IHZvaWQgc2V0SW50ZXJpbVJlc3VsdHMoYm9vbCBpbnRlcmltUmVzdWx0cykgeyBtX2ludGVyaW1S
ZXN1bHRzID0gaW50ZXJpbVJlc3VsdHM7IH0KKworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZl
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVzOyB9CisgICAgdm9pZCBzZXRNYXhB
bHRlcm5hdGl2ZXModW5zaWduZWQgbWF4QWx0ZXJuYXRpdmVzKSB7IG1fbWF4QWx0ZXJuYXRpdmVz
ID0gbWF4QWx0ZXJuYXRpdmVzOyB9CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydCgpOwor
ICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgYWJvcnQoKTsKKworICAgIC8vIFRPRE86IG1ha2Ug
c3VyZSBldmVudCBvcmRlcmluZyBpcyBjb3JyZWN0LgorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5n
U3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7
CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0
b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JikgZmluYWw7CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0
ZSB7CisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdG9wcGlu
ZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgICAgIElkbGUsCisgICAgfTsKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbihEb2N1bWVudCYpOworCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0OworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9
CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNp
ZGUgZGVmYXVsdCBsYW5ndWFnZS4KKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250
aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9Owor
ICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKwor
ICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzUyZWJjZWVlOTQyMTJlMmE0YWM2NGViOGI5MjdkN2RhOGI2ZGNiOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAg
ICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10g
aW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uIHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNv
bnN0cnVjdG9yKCk7CisKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmli
dXRlIGJvb2xlYW4gY29udGludW91czsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbnRlcmltUmVz
dWx0czsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBbHRlcm5hdGl2ZXM7CisKKyAg
ICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzdGFydCgpOworICAgIHVuZGVmaW5lZCBz
dG9wKCk7CisgICAgdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291bmRzdGFy
dDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvZW5kOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzky
N2JjMTkyYjM5YjdhZjA0NmZkMmZhMjlmNGFhZWE5NTM3ODJkMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSh0cmFuc2NyaXB0LCBjb25maWRlbmNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUoY29uc3QgU3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSkK
KyAgICA6IG1fdHJhbnNjcmlwdCh0cmFuc2NyaXB0KQorICAgICwgbV9jb25maWRlbmNlKGNvbmZp
ZGVuY2UpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E2ZTExZjlkYjc1MTA4ZDIyOGQyYmEyNDYyOGVm
NzQzNGFmYjI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaApAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2Up
OworCisgICAgU3RyaW5nIHRyYW5zY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7
IH0KKyAgICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsg
fQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUo
Y29uc3QgU3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJp
bmcgbV90cmFuc2NyaXB0OworICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTM2ZTBjZjMyZjAzMDNhMWVhYTQzZDQ3OTZkZDk4MzdiZWM5ZDI2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0cmFuc2NyaXB0
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25maWRlbmNlOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYTljYTg2M2RkZTE4ZWRmZjUzZWYzZTc0ZDQyZmM2OGE1ZDQyYWNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZT4gY29kZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKworICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3QgeyByZXR1cm4gIWNvZGUuaGFzVmFsdWUoKTsgfQorICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERl
Y29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29n
bml0aW9uRXJyb3I6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgY29kZSA8PCBtZXNzYWdlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvciByZXN1
bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29kZSkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tZXNzYWdl
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNDM4NDNiNWM2YTBlMjNhYjI1YWY5ZDY3NDMyMTBhOTk0YTEyNGNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgeworICAgIE5vU3Bl
ZWNoLAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAg
Tm90QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAg
IExhbmd1YWdlTm90U3VwcG9ydGVkCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNDE5ZDQzODUzMWQyNWRh
OTBhZGE3YWQwODQzMzkwN2MzNWQ3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJ
T04sCitdIGVudW0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgeworICAgICJuby1zcGVlY2gi
LAorICAgICJhYm9ydGVkIiwKKyAgICAiYXVkaW8tY2FwdHVyZSIsCisgICAgIm5ldHdvcmsiLAor
ICAgICJub3QtYWxsb3dlZCIsCisgICAgInNlcnZpY2Utbm90LWFsbG93ZWQiLAorICAgICJiYWQt
Z3JhbW1hciIsCisgICAgImxhbmd1YWdlLW5vdC1zdXBwb3J0ZWQiCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmMzE4MmMxOGMxMjRlMjUyZjdmMTE3MThjMjA1ZTA2
NWZiZWJhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVh
dGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJy
b3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgZXJyb3IsIG1lc3NhZ2UpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZXJyb3Io
aW5pdC5lcnJvcikKKyAgICAsIG1fbWVzc2FnZShpbml0Lm1lc3NhZ2UpCit7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgOiBFdmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwg
bV9tZXNzYWdlKG1lc3NhZ2UpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9OyAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1
ZmZmMWNmZjAzNDk5MWRmMmIzMTVmYjExNGI2MTVhODRiOGMxZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7
CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAg
fTsKKworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5v
KTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3I7IH0KKyAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVz
c2FnZTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZSwgY29uc3QgU3RyaW5nJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgbV9l
cnJvcjsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMwNjYy
NjVkM2M5N2E0ZDRjMTkwZTczZDg1NzhiZTAyOWQ0MzIzOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVF
Q0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKworZGljdGlvbmFy
eSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1
aXJlZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICBET01TdHJpbmcgbWVz
c2FnZSA9ICIiOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5Yzg4YjJkYWI5YTIx
N2U3MTUxYTJmZDY2MmYxMDYxMzE4MmYxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKwor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uRXZlbnQpOworCitSZWY8U3BlZWNoUmVj
b2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21T
dHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCBpbml0
LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCBy
ZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRz
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlw
ZSwgcmVzdWx0SW5kZXgsIFdURk1vdmUocmVzdWx0cykpKTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBj
b25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwg
aW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9yZXN1bHRJbmRleChpbml0LnJlc3VsdEluZGV4KQor
ICAgICwgbV9yZXN1bHRzKGluaXQucmVzdWx0cykKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25F
dmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50
NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiBy
ZXN1bHRzKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9yZXN1bHRJbmRleChyZXN1bHRJbmRleCkKKyAgICAs
IG1fcmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHMpKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYjYxOTc3ZGIzYWZh
NjI0NjcyY2MxNTE5NWVlNDVjZjIwM2E4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNP
R05JVElPTikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFNwZWVjaFJlY29nbml0aW9uRXZlbnQpOworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDog
RXZlbnRJbml0IHsKKyAgICAgICAgdWludDY0X3QgcmVzdWx0SW5kZXg7CisgICAgICAgIFJlZlB0
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdHM7CisgICAgfTsKKworICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
LCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2
NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsK
KworICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRJbmRl
eDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCogcmVzdWx0cygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzdWx0cy5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAg
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3Vs
dEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAgIEV2
ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB1aW50
NjRfdCBtX3Jlc3VsdEluZGV4OworICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q+IG1fcmVzdWx0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0OGMzZWMyZTE0ODRjMGU5NzhiZjFiYmE0MmEyYmQz
NDMxMWMxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFeHBvc2VkPVdp
bmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IEV2ZW50IHsKKyAgICBj
b25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgZXZl
bnRJbml0RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgcmVzdWx0
SW5kZXg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCByZXN1bHRzOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCA6
IEV2ZW50SW5pdCB7CisgICAgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleCA9IDA7CisgICAgcmVx
dWlyZWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBkYWUwMDEwNzc3NmU3ZDE5ZjNmNTdkNmQ1MDJiY2M3ZjRmMDA5
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKKworUmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoV1RG
TW92ZShhbHRlcm5hdGl2ZXMpLCBpc0ZpbmFsKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQorICAgIDogbV9hbHRl
cm5hdGl2ZXMoV1RGTW92ZShhbHRlcm5hdGl2ZXMpKQorICAgICwgbV9pc0ZpbmFsKGlzRmluYWwp
Cit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXgg
PCBtX2FsdGVybmF0aXZlcy5zaXplKCkpID8gbV9hbHRlcm5hdGl2ZXNbaW5kZXhdLnB0cigpIDog
bnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQxMzIzNTllODBkYTQ5OGFmMzYyYmRmNjk1OGUwMjdlNmQxZGRjMDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmU+PiYmLCBib29sIGlzRmluYWwpOworCisgICAgdWludDY0X3QgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0ZpbmFsKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0ZpbmFsOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSog
aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwg
Ym9vbCBpc0ZpbmFsKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZT4+IG1fYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgbV9pc0ZpbmFsIHsgZmFsc2UgfTsKK307
CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNmVlNGUzYTgxZTQ1
MmUyYmM1NTEzNmRhODc3NmNlMzIyNDQyMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJ
T04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdwor
XSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzRmluYWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMTI4OGUwNjBhMWYzODE4ZWU0MWNhOWQ2ZGM0NjI2Y2NkNzEyMmUzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgeworICAgIFN0cmluZyB0cmFu
c2NyaXB0OworICAgIGRvdWJsZSBjb25maWRlbmNlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4g
ZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRyYW5zY3JpcHQgPDwgY29uZmlkZW5jZTsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmVEYXRhPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zY3JpcHQpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
Y29uZmlkZW5jZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsKKyAgICBW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGFsdGVybmF0aXZlczsKKyAg
ICBib29sIGlzRmluYWwgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgYWx0ZXJuYXRpdmVzIDw8IGlzRmluYWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5hbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNGaW5hbCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5ZTdh
MDYwNWYxY2Q1MDliMzYzNzkyZmMzMTJiMTIyZmE0ODM2YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKworI2lmIEVOQUJMRShTUEVF
Q0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QoKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFdURk1vdmUobGlzdCkpKTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQqIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6aXRlbSh1
aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9saXN0LnNpemUo
KSkgPyBtX2xpc3RbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q6OmFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYgcmVzdWx0KQor
eworICAgIG1fbGlzdC5hcHBlbmQobWFrZVJlZihyZXN1bHQpKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKKyAgICA6IG1fbGlzdChXVEZNb3ZlKGxp
c3QpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTk4YTkyNDBjOTAwYzQ4ZGJmNDlmMzQxNzgyNjA2NmZl
ZTk2NTQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4+JiYpOworCisgICAgYm9vbCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2xpc3Quc2l6ZSgpOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0
X3QgaW5kZXgpIGNvbnN0OworCisgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQm
KTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoKSA9IGRlZmF1
bHQ7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+PiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZjhmZjY1ZjhlMWQwMTBlNGJkNzMx
MWRiODI4YjNmMjBmOWE0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCkBAIC0wLDAgKzEsMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCB7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTQ4
MDUxMWM2OTc4MTk3ZWQ2ZjI1YjExYTg4ZTY5MDRiMGEzMjQ0Mi4uNWE3ZmMxYzQ1YTk2NTQzZWIx
YjgyM2RkZjM0YzA3Yzc4OTE3NDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4MSw2ICsxODEsMTMg
QEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNw
cAogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0
dXJlLmNwcAogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cu
Y3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAorTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
CitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTM0ODMsNiArMzQ5MCwxMyBAQCBKU1No
YXJlRGF0YS5jcHAKIEpTU2xvdGFibGUuY3BwCiBKU1NvdXJjZUJ1ZmZlci5jcHAKIEpTU291cmNl
QnVmZmVyTGlzdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCitKU1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorSlNT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
Y3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuY3BwCiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTU3BlZWNoU3ludGhlc2lzRXZl
bnQuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YjUzM2VmNmM1ZjQ0
Y2RiODdkYmI4MTIxMTc4OTVjMGNkYzMxZWUzLi4zNTRkNWQ0OTdkMTQyYjZhMzYzMDU5NDU5ZWEz
ZjJiZGFiMWRkZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yNzI2LDYgKzI3MjYsMTggQEAKIAkJOTM0M0NCODIxMkYyNUU1
MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDNDQjgwMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNV
VEY4LmggKi87IH07CiAJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dz
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgg
Ki87IH07CiAJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTA3RTMx
MjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwNjQyNTM4MUQ3QjAwOTlGMTcx
IC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA2MzI1MzgxQzA4MDA5OUYxNzEgLyogRE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLzsgfTsKKwkJOTM0OTUwNjgyNTM4MURDNjAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b24uaCAqLzsgfTsKKwkJOTM0OTUwNkMyNTM4MjU5NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzQ5NTA2QTI1MzgyNTk2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTA3
MTI1MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA3MDI1MzhCMDVG
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwN0EyNTM4QzE1NzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDc3MjUzOEMxNTYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi87IH07CisJCTkzNDk1MDdGMjUzOEMyNzQw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwN0MyNTM4QzI3MjAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi87IH07CisJCTkzNDk1MDg2MjUzOEMzOTUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDgzMjUzOEMzOTUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLzsgfTsKKwkJOTM0OTUwODgyNTM4Q0Q2MTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwODcyNTM4Q0Q2MTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyB9OworCQk5MzQ5NTA4QTI1MzhEMjc4MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwODkyNTM4RDI3NzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IuaCAqLzsgfTsKKwkJOTM0OTUwOEQyNTM4RDMxQjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA4QjI1MzhEMzE5MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaCAqLzsgfTsKKwkJOTM0OTUwOTIyNTM4RDM2RjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwOEYyNTM4RDM2RTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oICovOyB9OworCQk5MzQ5NTA5QTI1MzhFMDNDMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwOTcyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCAqLzsgfTsKIAkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlw
dFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87IH07
CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3
MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEzQzBE
NUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBS
ZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTIzNCw2ICsxMTI0NiwzMyBAQAogCQk5MzQ0MkM5RDBEMkIzMzVDMDAz
MzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTA3
RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MDYwMjUzODFDMDcwMDk5RjE3MSAvKiBET01XaW5kb3crU3BlZWNo
UmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9ICJET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNjIyNTM4MUMwODAwOTlGMTcxIC8q
IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdp
bmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwNjMyNTM4MUMwODAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDY1MjUzODFEQkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDY2MjUzODFEQkYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2NzI1MzgxREJGMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNkEyNTM4MjU5NjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MDcwMjUzOEIwNUYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDc1MjUzOEMxNTUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzYyNTM4QzE1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MDc3MjUzOEMxNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwN0Iy
NTM4QzI3MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwN0MyNTM4QzI3MjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MDdEMjUzOEMyNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4MTI1MzhDMzk0MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTA4MjI1MzhDMzk0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MDgzMjUzOEMzOTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDg3MjUzOENENjEwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MDg5MjUzOEQyNzcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOEIyNTM4
RDMxOTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDhDMjUzOEQzMUEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTA4RjI1MzhEMzZFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5MDI1MzhEMzZFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDkxMjUzOEQzNkYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MDk1MjUzOEUwM0IwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5NjI1MzhFMDNC
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MDk3MjUzOEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0Q0MxMDkwRURCMjIzOTAwQTY1
OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyaXB0U291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRG
NzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGNzEzOTBENUE2
RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxODAzLDYgKzIxODQyLDggQEAKIAkJCQk1QzdD
ODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUw
QzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNE
RTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkzNDk1
MDZBMjUzODI1OTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAorCQkJ
CTkzNDk1MDcwMjUzOEIwNUYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGlt
ZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRp
bWVyLmggKi8sCkBAIC0yNTMxOSw5ICsyNTM2MCwzNCBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5
NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk5MzQ5NTA2MDI1MzgxQzA3MDA5OUYxNzEgLyogRE9NV2luZG93K1NwZWVjaFJlY29n
bml0aW9uLmlkbCAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93
K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCisJCQkJOTM0OTUwNjIyNTM4MUMwODAwOTlGMTcxIC8q
IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcCAqLywKKwkJCQk5MzQ5NTA2MzI1MzgxQzA4
MDA5OUYxNzEgLyogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLywKIAkJCQlBQTJBNUFC
ODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmgg
Ki8sCisJCQkJOTM0OTUwNjUyNTM4MURCRTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNw
cCAqLywKKwkJCQk5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aCAqLywKKwkJCQk5MzQ5NTA2NzI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aWRsICovLAorCQkJCTkzNDk1MDc2MjUzOEMxNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmNwcCAqLywKKwkJCQk5MzQ5NTA3NzI1MzhDMTU2MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAorCQkJCTkzNDk1MDc1MjUzOEMxNTUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5MzQ5NTA4
OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAorCQkJCTkz
NDk1MDhCMjUzOEQzMTkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICov
LAorCQkJCTkzNDk1MDhDMjUzOEQzMUEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5pZGwgKi8sCisJCQkJOTM0OTUwOTAyNTM4RDM2RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwOEYyNTM4RDM2RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovLAorCQkJCTkzNDk1MDkxMjUzOEQzNkYw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsICovLAorCQkJCTkzNDk1
MDk1MjUzOEUwM0IwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKKwkJ
CQk5MzQ5NTA5NzI1MzhFMDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICov
LAorCQkJCTkzNDk1MDk2MjUzOEUwM0IwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbCAqLywKKwkJCQk5MzQ5NTA3QjI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkzNDk1MDdEMjUzOEMyNzMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTM0OTUwODcyNTM4Q0Q2MTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAorCQkJCTkzNDk1MDgyMjUz
OEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAorCQkJ
CTkzNDk1MDgzMjUzOEMzOTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aCAqLywKKwkJCQk5MzQ5NTA4MTI1MzhDMzk0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpcy5pZGwgKi8sCkBAIC0zMDY1NCw3ICszMDcyMCw2IEBACiAJCQkJNTE3NDFEMEYwQjA3
MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5NDcyMTcyNTMyM0MyMTAwRjE1M0M4
IC8qIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEVF
ODBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwQkI2
MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODMxOThGQkYyNEExNjBERDAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzEzMjIsNiArMzEzODcsNyBAQAogCQkJCTUxODVGQzc1MUJCNEM0RTgwMDEy
ODk4RiAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODlGNjBCMTExNTdGNjg2RTAwNzVFMTU3IC8qIERPTVdpbmRvd1F1b3RhLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTA2NDI1MzgxRDdCMDA5OUYxNzEgLyogRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ2MTZBNDg2MTYwMDk3
NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
Q0NCQjQ5MTUxRjgzMTYwMEFCN0NFOSAvKiBET01XaW5kb3dXZWJEYXRhYmFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3JsZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMzk4Myw2ICszNDA0OSwxNyBAQAogCQkJCTg0QTgxRjQyMEZD
N0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDFB
MjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTA2ODI1MzgxREM2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDdBMjUzOEMxNTcwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA2
QzI1MzgyNTk3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzNDk1MDcxMjUzOEIwNUYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDhBMjUzOEQyNzgwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA4RDI1
MzhEMzFCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzNDk1MDkyMjUzOEQzNkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDlBMjUzOEUwM0MwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3RjI1
MzhDMjc0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzNDk1MDg4MjUzOENENjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDg2MjUzOEMzOTUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0
MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVz
aXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDcy
Y2ZhYTVlYjA3NTk2MGE3MzdmYmUyMzUxZTU0OWRkNDQ0YzdmNjMuLjc2MDNlNWNlODZiYTFmMDg3
ZjkxOGIzODM1MTUzZGViN2UyZDdiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC02
Miw2ICs2Miw4IEBAIFJUQ0RhdGFDaGFubmVsRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRD
RFRNRlRvbmVDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1RyYWNrRXZlbnQgY29uZGl0aW9uYWw9
V0VCX1JUQworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGNvbmRpdGlvbmFsPVNQRUVDSF9S
RUNPR05JVElPTgorU3BlZWNoUmVjb2duaXRpb25FdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVD
T0dOSVRJT04KIFNwZWVjaFN5bnRoZXNpc0V2ZW50IGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVT
SVMKIFdlYkdMQ29udGV4dEV2ZW50IGNvbmRpdGlvbmFsPVdFQkdMCiBTdG9yYWdlRXZlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDMwMTcxMDA0NGZmMTNh
MTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIuLmJhMjM0YTQzYzMyMTYzNTRlMGEzNTRjOGRiYzEx
N2E1NGQxZTEwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpA
QCAtNDQsNiArNDQsNyBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgY29uZGl0aW9uYWw9U0VS
VklDRV9XT1JLRVIKIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gY29uZGl0aW9uYWw9U0VSVklD
RV9XT1JLRVIKIFNvdXJjZUJ1ZmZlciBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFNvdXJjZUJ1
ZmZlckxpc3QgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCitTcGVlY2hSZWNvZ25pdGlvbiBjb25k
aXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBjb25k
aXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU8KIFRl
eHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFTwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNWIwOTMy
YWNiYmIxMjI3MGJkZmEyNjg5ZDdjMjA3Nzk0ODE5ZTY3OS4uZDdlNGRiNTg0NjkzMjYwMzFjNmI0
N2QwOGYxZGMwMWMzNDEyNDNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTcsNiArMTE3LDcg
QEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFt
ZXNwYWNlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLmQwODBh
ZWIwYzE5MmRhMDQ4MDMzMWJlYTUxYmZlNzBkMmY0Y2U1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0x
MzYsNiArMTM2LDcgQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFzcyBTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTb2NrZXRQcm92aWRl
cjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXI7CkBAIC03NzAsNiArNzcxLDEwIEBAIHB1YmxpYzoKICAgICBXZWJHTFN0YXRl
VHJhY2tlciogd2ViR0xTdGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMU3RhdGVU
cmFja2VyLmdldCgpOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5nZXQo
KTsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBTcGVlY2hT
eW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKQEAgLTkwNSw2ICs5MTAsMTAg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2Vi
R0xTdGF0ZVRyYWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1fc3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKaW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVjOC4u
ZThlYjgwNzY4OTkzOWQ1NGFkYmYwZjQ0YjMyZmQ4YzE0NTllZmZiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBVc2VyQ29u
dGVudFVSTFBhdHRlcm47CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZp
c2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIAogY2xh
c3MgUGFnZUNvbmZpZ3VyYXRpb24gewpAQCAtMTEyLDYgKzExMyw5IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoV0VCR0wpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiB3ZWJH
TFN0YXRlVHJhY2tlcjsKICNlbmRpZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisg
ICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gc3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOworI2VuZGlmCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMp
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gc3BlZWNoU3ludGhl
c2lzQ2xpZW50OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVj
aFJlY29nbml0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0
aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2OGQyMDZmMGRlMTZmOGMyZmZkOWU2MGQ0ZWNiMDIx
YjY4Njg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworc3RydWN0IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZp
cnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0
dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3Vu
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9N
YXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoY29uc3Qg
VmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZkNGUwZDhjZDI2NDM3NTli
NDUyMzhmM2NiZmI3ZDI1NjE4Y2M0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudDsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1YWwg
flNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
dm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQq
KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dAppbmRleCBkYWY1ZmI3MzEzYmRkOTgwNjhkZWRkMzljYmFjNGRmYmU5Mzc3Y2E4Li41ODU2YjZm
ODMxNGNhNjhmMmQ0M2VhM2VhYmFiMGFjYjVkMjZlMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTY0OCw2
ICs2NDgsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAog
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTU1ZGU5MWRjY2EwMjUzODI4YzEw
ZWE1ZDgzYTY0ZGU5NjUyMjAwMi4uZDUyN2ZjZDU0NDQzMWQ1ZGY1MzUzMmYxMjVlZDExYjhkNzk4
YWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzU2LDYgKzEzNTYsNyBAQAogCQk5MzNFODM1NTIzQTA3QzA2MDBERUYyODkgLyog
V2ViSURCU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzNFODM1MzIzQTA3QkY4MDBERUYyODkgLyogV2ViSURCU2VydmVyLmggKi87IH07CiAJ
CTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTkyM0ExQURG
NTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4MzVCMjNB
MUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAw
REVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzNDk1
MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDcyMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgfTsK
IAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1
QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVE
RiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNX
U2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oICovOyB9OwpAQCAtNDQxMCw2ICs0NDExLDggQEAKIAkJOTMzRTgzNTcyM0ExQTg3MjAwREVG
Mjg5IC8qIFdlYklEQlNlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJOTMzRTgzNTkyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3
MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDczMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTUxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NTMwLDcgKzQ1MzMsNyBAQAogCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0
NzkwOEMyNTMxNEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI0NzkwOEUyNTMxNTFDQzAwRUMxMUFCIC8qIEpTSVBDQmluZGlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0lQQ0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOUI0NzkwOTAyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdl
QXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRp
b25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI0NzkwOTAyNTMxNTYzMjAw
RUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIwMjM2MkE3
RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODkxNiw2ICs4OTE5LDggQEAKIAkJCQk0NjcxRkYxRDIzMjE3RUZG
MDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLywKIAkJCQlEM0I5NDg0NDEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKIAkJCQlEM0I5NDg0
NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCisJCQkJOTM0OTUw
NzMyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTExNDc5LDYgKzExNDg0
LDcgQEAKIAkJCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1v
dXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUFGMjI1
NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzNDk1MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQw
MDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWQxZGQ4ZDZhOWIyOWNh
OGZhYmE5MzJjOTA4MWE1OTAzZDk3ZjE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJM
RShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbihXZWJQYWdlJikKK3sKK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KiwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3Vs
dHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQq
IGNsaWVudCkKK3sKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFi
b3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZWU5OWJjZmNmYWQ2ODIwZGM5NmY0
M2MzZjA4ZDhiNjliY2MzNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpOwor
CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0
IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50
NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCopIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQqKSBmaW5hbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAwNDYwYzZkNzYzMzBiODliZjMxNzhhN2VjZDc2NDA4OTRmYWYxYWQ4Li4wNWY0
Mjc2ODRhN2U5NTczYTIxYjI4MTIwMmYxYWM2MWQ1Yzg0ZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCkBAIC01MjYsNiArNTI3LDEwIEBAIFdlYlBh
Z2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKICAgICB9KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9S
RUNPR05JVElPTikKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4oKnRoaXMp
OworI2VuZGlmCisgICAgCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAK
aW5kZXggMTc1N2E2YTliMWIxMjUzMDEzNWFiOGY3N2IxZWE1OWY2YjAyZWRlOC4uNWIzZTcwMGUw
OTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oPgpAQCAtMzMsNyArMzQsNiBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6
OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411524</attachid>
            <date>2020-10-15 19:47:22 -0700</date>
            <delta_ts>2020-10-15 20:33:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015194719.patch</filename>
            <type>text/plain</type>
            <size>151861</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJiOTYzMGEyMjFkZmUxMDllYjZhMDA2
YzRkNDViMTBlOTJiNDJhYTkuLjVmZTQ5ZDc5OWVkYzRkMjVlNTMzZjNjYWUxYzBlY2JmMjNjZDE5
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBEaXNhbGxvdyBwb3J0cyBpbiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTJm
ZDJiYzRhZjBjMmI2MzdiMDUyNzM5MGZmYjA4YjVkYmRiZGM5Li4xOTQxNWYxNDIzODUwYzYzNDUz
NGJhMzllZjU5NGFlYTBmNDFjMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI1IEBACisyMDIw
LTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93
K1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZy
b20pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnNwZWVj
aFJlY29nbml0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVj
b2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1
ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29n
bml0aW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6
ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnVwZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjpyZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6U3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6ZXJyb3IgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6cmVzdWx0cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmRhdGEgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ6Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRv
bS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKwog
MjAyMC0xMC0xNCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAg
ICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBtaWQgT2N0b2JlciAyMDIwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDUyOTgyOGU5OWExYTFmMjExNTFiMWYzMmYxZjBhZGFlMDQ5MzgxMWUuLmNkN2Y5M2IzODk1MDMw
NDM0NDk4OTIxZGUxNzAwYzBjMTZlNzc0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1
MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RvcCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25BYm9ydCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpyZW1v
dmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzUGVuZGluZ1JlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNvbXBsZXRlQ3VycmVudFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnByb2dyZXNzRGlkVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpjdXJyZW50Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
bGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisKIDIwMjAtMTAtMTQgIERv
biBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBOb24tdW5pZmll
ZCBidWlsZCBmaXhlcywgbWlkIE9jdG9iZXIgMjAyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCmluZGV4IGNkZDk5YjdmOTQyOGRlMTFhNGQxZjg5Njc0MTA2NTM4ZTY0NTY0NWUuLjMx
MTdlZjRkMzYyNmFlNTRiMGFiMjY0NWIyOTc0NmI3OWFiYjQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyNSw2ICs0MjUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1JF
U09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5B
QkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmZDll
YmE2NGQxNDJlYmE0NTU4ZGJmMWIwMjI5NDQwMGYwZWMyNmExLi5lMjk4Mzg5ZTJlZjA0YWExNDMw
YzlmZTE4YjIwMGUyYWIxZjZiOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDM2LDYgKzQz
NiwxNSBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAgICAgTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbAogCisgICAgTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCisgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCA4NmEwNzc0MWYzODQ0NzkyMGFhMGU5Mjc2MmJkNGUwZTZlNjJkZDcwLi5iZjE1N2U5Yjcw
ZTlmMzM3OGU5OTkzNTVlNTNlY2E5M2FiOWJjNDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsyNzksMTQgQEAgJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3RhLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVtZW50K1Jl
bW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9S
ZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2sv
UmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVj
aFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCBlMjFmYzgwNTYxMjRlYmVhYTA5MmQyZmM4ZjY2ZTQ3NjZkMjg2ZjBlLi5jOTQz
NWZjYWVkZDVhODZkZWI5YmRhNTU1NzM0ZDlkZDc0NjQ0ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTQ3LDYgKzU0Nyw4IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93
K1NlbGVjdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVlY2hT
eW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytW
aXN1YWxWaWV3cG9ydC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRE9NV2luZG93K1Zpc3VhbFZpZXdwb3J0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1dlYkRhdGFiYXNlLmNwcApAQCAt
NTYxLDYgKzU2Myw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93UXVvdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dTcGVl
Y2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dX
ZWJEYXRhYmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJHUFUuY3BwCkBAIC0yMTA1LDYgKzIxMDks
MjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3Vy
Y2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2du
aXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRoZXNpcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRoZXNpc0V2ZW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNjUxM2I4YmVjMzUxN2Y3ZGJj
NDYzMDJkZDY5OTJkMjRlOGEyMGRkNC4uMWYwNTQ3ZWExZTBkZGYwYjljMWZkNGM2NmI5MmQxODg4
MzViYzEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzYsNiArMzc2LDE0
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgXAorCSQoV2ViQ29y
ZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtQ29u
dHJvbGxlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNhNDNh
NjRiNWMxYjY3MTM0MzY5Yzc1MjdhOWZhZjA5NDRkYWViMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5p
ZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVF
Q0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50ZWRCeT1ET01XaW5kb3dTcGVlY2hSZWNvZ25p
dGlvbgorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiBzcGVlY2hSZWNvZ25pdGlvbjsKKyAgICBbSW1wbGVtZW50
ZWRBcz1zcGVlY2hSZWNvZ25pdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0
aW9uIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xM2JjMmViZDVlOTViZjkzOWY4YTcwNDc1ODg4NmUzOWI4MTVhNWQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCIKKwor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb246OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKERPTVdpbmRvdyogd2lu
ZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93KQoreworfQorCitET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbjo6fkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKCkgPSBkZWZhdWx0
OworCitjb25zdCBjaGFyKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3VwcGxlbWVudE5h
bWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24iOworfQorCitE
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZy
b20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24q
IHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbio+KFN1
cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAg
ICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gbWFrZVVu
aXF1ZTxET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbj4od2luZG93KTsKKyAgICAgICAgc3VwcGxl
bWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHByb3ZpZGVUbyh3aW5kb3csIHN1
cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1
cm4gc3VwcGxlbWVudDsKK30KKworU3BlZWNoUmVjb2duaXRpb24qIERPTVdpbmRvd1NwZWVjaFJl
Y29nbml0aW9uOjpzcGVlY2hSZWNvZ25pdGlvbihET01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICBy
ZXR1cm4gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20oJndpbmRvdyktPnNwZWVjaFJl
Y29nbml0aW9uKCk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uKiBET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGF1dG8qIHdpbmRvdyA9IHRoaXMt
PndpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHdpbmRvdy0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBpZiAocGFnZS0+aXNDbG9zaW5nKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uKQorICAgICAgICBtX3Nw
ZWVjaFJlY29nbml0aW9uID0gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSgqZG9jdW1lbnQpOwor
CisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb24uZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWRiYjcwZTFmMDg4YWE4ZDBhNTFkNTgyYTE1N2Qz
MjcwZDBiM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisj
aW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bi5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiA6
IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBET01XaW5kb3dQcm9wZXJ0eSB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93Kik7CisgICAgdmlydHVhbCB+RE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTcGVl
Y2hSZWNvZ25pdGlvbiogc3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93Jik7CisgICAgc3RhdGlj
IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBmcm9tKERPTVdpbmRvdyopOworCitwcml2YXRl
OgorICAgIFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hSZWNvZ25pdGlvbigpOworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgUmVmUHRyPFNwZWVjaFJlY29n
bml0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZWY0ZTMyMGVjYWMyNzA0YzhmMjc5MWIxMGUzZGIyYjUyZTE4NTk4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3Bw
CkBAIC0wLDAgKzEsMTg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklU
SU9OKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uKTsKKworUmVmPFNwZWVjaFJl
Y29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1bWVudCkp
OworfQorCitTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQoreworICAgIGlmIChhdXRv
KiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIGF1dG8qIGNsaWVudCA9IHBhZ2Ut
PnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworICAgICAgICBpZiAoY2xpZW50KQorICAg
ICAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cigqY2xp
ZW50KTsKKyAgICB9Cit9CisKK1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24o
KQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGluZyB8fCBtX3N0YXRlID09IFN0
YXRlOjpSdW5uaW5nKQorICAgICAgICBhYm9ydCgpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBT
cGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpJ
ZGxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJSZWNv
Z25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3RhcnRlZCJfcyB9OworCisgICAg
aWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi0+c3RhcnQodGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CisKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpzdG9wKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcgJiYgbV9zdGF0
ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGlz
IGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBt
X3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RvcCh0aGlzKTsKKworICAgIG1fc3RhdGUg
PSBTdGF0ZTo6U3RvcHBpbmc7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0KCkK
K3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcgJiYgbV9zdGF0ZSAhPSBTdGF0
ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0
b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi0+YWJvcnQodGhpcyk7CisKKyAgICBtX3N0YXRlID0gU3RhdGU6
OkFib3J0aW5nOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydCgpCit7Cisg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0
YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFy
dENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rv
cENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BD
YXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1
cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCgp
Cit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxlOworICAgIG1fZmluYWxSZXN1bHRzLmNsZWFyKCk7
CisKKyAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSAKKyAgICAgICAgZGlzcGF0Y2hFdmVudChTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwg
KmVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKyAgICBlbHNlCisgICAgICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+JiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2VydmVDYXBhY2l0eSht
X2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOworICAgIGFsbFJlc3Vs
dHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2NF90IG5vbkZpbmFs
UmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0
YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRvIGFsdGVybmF0aXZl
RGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAgYWx0ZXJuYXRpdmVz
LmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoYWx0ZXJuYXRpdmVE
YXRhLnRyYW5zY3JpcHQsIGFsdGVybmF0aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1
dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFs
dGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRh
LmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQp
OworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAg
IGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0
byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92
ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBt
YWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJl
Y29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNw
ZWVjaFJlY29nbml0aW9uIjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMzMTM3MDJjOWI1MDE1NmIwY2E3MzczNmYxOWZlY2NjZWU1ZDk2M2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVu
dFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVl
Y2hSZWNvZ25pdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlv
bj4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgflNwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBj
b25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNl
dExhbmcoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9IGxhbmc7IH0KKworICAgIGJvb2wg
Y29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91czsgfQorICAgIHZvaWQgc2V0
Q29udGludW91cyhib29sIGNvbnRpbnVvdXMpIHsgbV9jb250aW51b3VzID0gY29udGludW91czsg
fQorCisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJl
c3VsdHM7IH0KKyAgICB2b2lkIHNldEludGVyaW1SZXN1bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMp
IHsgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOyB9CisKKyAgICB1aW50NjRfdCBt
YXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorICAg
IHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1heEFsdGVybmF0aXZlcykgeyBtX21h
eEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsgfQorCisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc3RhcnQoKTsKKyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGFib3J0KCk7CisKKyAgICAv
LyBUT0RPOiBtYWtlIHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAgICB2b2lkIGRp
ZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7
CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRT
dGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1Nw
ZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7Cisg
ICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmRO
b01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChjb25zdCBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpIGZpbmFsOworCisgICAgdXNpbmcgUmVmQ291bnRl
ZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIGVu
dW0gY2xhc3MgU3RhdGUgeworICAgICAgICBTdGFydGluZywKKyAgICAgICAgUnVubmluZywKKyAg
ICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAgICAgICBJZGxlLAorICAgIH07
CisgICAgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKworICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01P
YmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFs
IHsgZGVyZWYoKTsgfQorCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJZGxlIH07CisgICAg
Ly8gVE9ETzogZGVjaWRlIGRlZmF1bHQgbGFuZ3VhZ2UuCisgICAgU3RyaW5nIG1fbGFuZzsKKyAg
ICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ludGVyaW1SZXN1bHRz
IHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKKyAgICBX
ZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9zcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb247CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9m
aW5hbFJlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM1MmViY2VlZTk0MjEyZTJhNGFjNjRlYjhiOTI3ZDdkYThiNmRjYjgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5pZGwKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBBY3RpdmVE
T01PYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9z
ZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbiB7CisgICAgW0NhbGxXaXRo
PURvY3VtZW50XSBjb25zdHJ1Y3RvcigpOworCisgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5n
OworICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRpbnVvdXM7CisgICAgYXR0cmlidXRlIGJvb2xl
YW4gaW50ZXJpbVJlc3VsdHM7CisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWx0ZXJu
YXRpdmVzOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAg
ICB1bmRlZmluZWQgc3RvcCgpOworICAgIHVuZGVmaW5lZCBhYm9ydCgpOworCisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnNvdW5kc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaHN0YXJ0
OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zcGVlY2hlbmQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbnNvdW5kZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25h
dWRpb2VuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzdWx0OworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25ub21hdGNoOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25lcnJvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhcnQ7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmVuZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5MjdiYzE5MmIzOWI3YWYwNDZmZDJmYTI5ZjRhYWVhOTUzNzgyZDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKKworUmVmPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUodHJhbnNjcmlw
dCwgY29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91Ymxl
IGNvbmZpZGVuY2UpCisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNjcmlwdCkKKyAgICAsIG1fY29u
ZmlkZW5jZShjb25maWRlbmNlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNmUxMWY5ZGI3NTEwOGQy
MjhkMmJhMjQ2MjhlZjc0MzRhZmIyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCAr
MSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9S
RUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRyYW5zY3JpcHQsIGRvdWJs
ZSBjb25maWRlbmNlKTsKKworICAgIFN0cmluZyB0cmFuc2NyaXB0KCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2NyaXB0OyB9CisgICAgZG91YmxlIGNvbmZpZGVuY2UoKSBjb25zdCB7IHJldHVybiBt
X2NvbmZpZGVuY2U7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2Up
OworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgbV9jb25maWRlbmNlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFlYWE0M2Q0Nzk2ZGQ5ODM3YmVj
OWQyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5jZTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ4NTIyNTY5ODhiODZkZjgzMTkwNzY2Y2Y4Mzg5
ZDNkZWRjN2E2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNs
YXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9y
dGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisg
ICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1
cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOworICAgIFN0cmluZyBtZXNzYWdl
OworCisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhdHlwZS5oYXNWYWx1ZSgpOyB9
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1lc3NhZ2U7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC50eXBlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0Lm1lc3NhZ2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9TcGVlY2gsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLAorICAgICAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0d29yaywKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2aWNlTm90QWxsb3dlZCwKKyAg
ICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkJhZEdyYW1tYXIsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpMYW5ndWFnZU5vdFN1
cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDJiOWMxNGY1YzU5ZjUxMTkxMDExNTkzNzZkNGYy
YWExYTQ2NGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0gU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E0MTlkNDM4NTMxZDI1ZGE5MGFkYTdhZDA4NDMzOTA3
YzM1ZDc5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKK10gZW51bSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7CisgICAgIm5vLXNwZWVjaCIsCisgICAgImFib3J0ZWQi
LAorICAgICJhdWRpby1jYXB0dXJlIiwKKyAgICAibmV0d29yayIsCisgICAgIm5vdC1hbGxvd2Vk
IiwKKyAgICAic2VydmljZS1ub3QtYWxsb3dlZCIsCisgICAgImJhZC1ncmFtbWFyIiwKKyAgICAi
bGFuZ3VhZ2Utbm90LXN1cHBvcnRlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNWYzMTgyYzE4YzEyNGUyNTJmN2YxMTcxOGMyMDVlMDY1ZmJlYmE5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7CisKK1JlZjxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3Ry
aW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudCh0eXBlLCBlcnJvciwgbWVzc2FnZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZl
bnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9lcnJvcihpbml0LmVycm9yKQorICAg
ICwgbV9tZXNzYWdlKGluaXQubWVzc2FnZSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykKKyAgICAsIG1fZXJyb3IoZXJyb3IpCisgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Ojpl
dmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudEludGVyZmFjZVR5cGU7Cit9CisKK307IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjVmZmYxY2ZmMDM0OTkxZGYy
YjMxNWZiMTE0YjYxNWE4NGI4YzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNP
R05JVElPTikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKK3B1YmxpYzoKKyAgICBz
dHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlIGVycm9yOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICB9OworCisgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmKTsKKworICAgIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQor
ICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisKK3ByaXZh
dGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBj
b25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJp
bmcmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBtX2Vycm9yOworICAgIFN0cmlu
ZyBtX21lc3NhZ2U7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzA2NjI2NWQzYzk3YTRkNGMxOTBl
NzNkODU3OGJlMDI5ZDQzMjM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbApAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwK
KyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIERPTVN0cmluZyBtZXNzYWdlID0gIiI7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTljODhiMmRhYjlhMjE3ZTcxNTFhMmZkNjYyZjEw
NjEzMTgyZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
U3BlZWNoUmVjb2duaXRpb25FdmVudCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkpOwor
fQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6
Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmIHJlc3VsdHMpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCByZXN1bHRJbmRleCwg
V1RGTW92ZShyZXN1bHRzKSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQs
IElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQp
CisgICAgLCBtX3Jlc3VsdEluZGV4KGluaXQucmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMo
aW5pdC5yZXN1bHRzKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVpbnQ2NF90IHJlc3VsdEluZGV4
LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmIHJlc3VsdHMpCisgICAgOiBF
dmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
CisgICAgLCBtX3Jlc3VsdEluZGV4KHJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRzKFdURk1v
dmUocmVzdWx0cykpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRp
b25FdmVudEludGVyZmFjZVR5cGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiNjE5NzdkYjNhZmE2MjQ2NzJjYzE1MTk1ZWU0
NWNmMjAzYTgzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25FdmVudCk7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAg
ICAgICB1aW50NjRfdCByZXN1bHRJbmRleDsKKyAgICAgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4gcmVzdWx0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJ
c1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgs
IFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgdWludDY0X3Qg
cmVzdWx0SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdEluZGV4OyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KiByZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRz
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBB
dG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2duaXRp
b25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZl
bnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHVpbnQ2NF90IG1fcmVzdWx0SW5k
ZXg7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gbV9yZXN1bHRzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDQ4YzNlYzJlMTQ4NGMwZTk3OGJmMWJiYTQyYTJiZDM0MzExYzE4YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0
cmluZyB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleDsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9Owor
CitkaWN0aW9uYXJ5IFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAg
ICB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4ID0gMDsKKyAgICByZXF1aXJlZCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg1MDM3MTBkNDdjZTRiMGY5YTM0MzBkMzZiODg5MjZhMzcxZGI0
OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjp1cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZSB7IHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplcnJvcihjb25zdCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
IHVwZGF0ZSB7IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciB9Owor
ICAgIHVwZGF0ZS5tX2Vycm9yID0gZXJyb3I7CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlOjpyZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJl
c3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB1cGRhdGUgeyBT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0IH07CisgICAgdXBkYXRl
Lm1fcmVzdWx0cyA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKworU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZShT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSB0eXBlKQorICAgIDogbV90eXBlKHR5
cGUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNjOWI0OGNhNzAwZTk0YWMzMmUyMmM1Zjdl
ZWM1ZjMzOTQwYWQyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaApAQCAtMCwwICsxLDExNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05J
VElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291
bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQs
CisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisg
ICAgRW5kLAorICAgIEludmFsaWQsCit9OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZSB1cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUpOworICAg
IHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIGVycm9yKGNvbnN0IFNwZWVj
aFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZSByZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4m
KTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIGVycm9yKCkg
Y29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdHM7IH0KKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNp
dCBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGVUeXBlKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBl
IG1fdHlwZTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIG1fZXJyb3I7CisgICAgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gbV9yZXN1bHRzOworfTsKKwordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5cGUgPDwg
bV9lcnJvciA8PCBtX3Jlc3VsdHM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+IFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlOjpJbnZhbGlkKTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3R5cGUp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9lcnJvcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jlc3VsdHMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZT4geworICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlVHlwZTo6U3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U291bmRTdGFydCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaFN0YXJ0LAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3Bl
ZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
VHlwZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkVuZCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkludmFsaWQKKyAgICA+
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2E1Mzc0OGY2NjI2YTc2MTMyNTBkOTdjNzBlYTVmZGE0NTViMTA1NwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIKKworI2lm
IEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVh
dGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRp
dmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAgICwgbV9k
YXRhKFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgeyBsYW5nLCBjb250aW51b3VzLCBpbnRl
cmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH0pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YmY2MGVlMTU3N2Nl
YzFkNTBkZjdlZWY2MThiZDI5NWIyNzMxY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0
SWRlbnRpZmllci5oPgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0RGF0YS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4geworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqLCBjb25zdCBT
dHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorICAgIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdERhdGEgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitwcml2YXRl
OgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCos
IGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRz
LCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudD4gbV9jbGllbnQ7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSBt
X2RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNzAwM2FiZjYwODJmM2ZiOGVkYWI4ZTA2Y2U0NDNh
NjIzNzBlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8qZW51bSBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07CisgdXNpbmcgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworIGF1dG8gaWRlbnRpZmllciA9IFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisqLworCitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0RGF0YSB7CisgICAgU3RyaW5nIGxhbmc7CisgICAgYm9vbCBjb250
aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKKyAg
ICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGE+IGRl
Y29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVzdWx0cyA8
PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25h
bDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RE
YXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5sYW5nKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmNvbnRpbnVvdXMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW50ZXJpbVJlc3VsdHMpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWF4QWx0
ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGRhZTAwMTA3Nzc2ZTdkMTlmM2Y1N2Q2ZDUwMmJjYzdmNGYwMDk2
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQpOworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoVmVjdG9yPFJlZjxTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChXVEZN
b3ZlKGFsdGVybmF0aXZlcyksIGlzRmluYWwpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwpCisgICAgOiBtX2FsdGVy
bmF0aXZlcyhXVEZNb3ZlKGFsdGVybmF0aXZlcykpCisgICAgLCBtX2lzRmluYWwoaXNGaW5hbCkK
K3sKK30KKworU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ6Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8
IG1fYWx0ZXJuYXRpdmVzLnNpemUoKSkgPyBtX2FsdGVybmF0aXZlc1tpbmRleF0ucHRyKCkgOiBu
dWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDEzMjM1OWU4MGRhNDk4YWYzNjJiZGY2OTU4ZTAyN2U2ZDFkZGMwMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICB1aW50NjRfdCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2FsdGVybmF0aXZlcy5zaXplKCk7IH0KKyAgICBib29sIGlzRmluYWwoKSBjb25zdCB7
IHJldHVybiBtX2lzRmluYWw7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBp
dGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmLCBi
b29sIGlzRmluYWwpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPj4gbV9hbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBtX2lzRmluYWwgeyBmYWxzZSB9OworfTsK
KworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM2ZWU0ZTNhODFlNDUy
ZTJiYzU1MTM2ZGE4Nzc2Y2UzMjI0NDIyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApAQCAtMCwwICsx
LDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElP
TiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93Citd
IGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCB7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNGaW5hbDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjExMjg4ZTA2MGExZjM4MThlZTQxY2E5ZDZkYzQ2MjZjY2Q3MTIyZTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7CisgICAgU3RyaW5nIHRyYW5z
Y3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBjb25maWRlbmNlOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSByZXN1
bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNjcmlwdCkpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5j
b25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeworICAgIFZl
Y3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gYWx0ZXJuYXRpdmVzOworICAg
IGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gZGVjb2RlKERlY29k
ZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjllN2Ew
NjA1ZjFjZDUwOWIzNjM3OTJmYzMxMmIxMjJmYTQ4MzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNw
cApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCgpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoVmVjdG9yPFJlZjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoV1RGTW92ZShsaXN0KSkpOworfQorCitTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtKHVp
bnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgp
KSA/IG1fbGlzdFtpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDo6YWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0JiByZXN1bHQpCit7
CisgICAgbV9saXN0LmFwcGVuZChtYWtlUmVmKHJlc3VsdCkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQorICAgIDogbV9saXN0KFdURk1vdmUobGlz
dCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOThhOTI0MGM5MDBjNDhkYmY0OWYzNDE3ODI2MDY2ZmVl
OTY1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBib29sIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGlzdC5zaXplKCk7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogaXRlbSh1aW50NjRf
dCBpbmRleCkgY29uc3Q7CisKKyAgICB2b2lkIGFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYp
OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCgpID0gZGVmYXVs
dDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4+JiYpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdD4+IG1fbGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlmOGZmNjVmOGUxZDAxMGU0YmQ3MzEx
ZGI4MjhiM2YyMGY5YTQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRl
cmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNzM2NGI0YTZk
YWMzZTQ4YjBjZmM3YjdmZWE4ZDc1YTBkMTg4NGFhNC4uMWZmYzM5YWRkZDAwYmI5MjQ3ZDlmMThl
MGExZjM3YzcyYmU4ZTdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
QXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNsdWRl
ICJBdWRpb1BhcmFtLmgiCisjaW5jbHVkZSAiQXVkaW9QYXJhbURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJBdWRpb1BhcmFtTWFwLmgiCiAjaW5jbHVkZSAiQXVkaW9VdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJBdWRpb1dvcmtsZXQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggZjI0OTdmOTEwYTBhZWU3OWM0OTc0MzQ5OThl
MDUzMDdiMWM4YzZlYi4uZDdkMWY0MDA3YjkwNzBkYTc3Y2FjYWM3NzdhYjdjMmYxNzUwNWRlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFs
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA5NDgwNTExYzY5NzgxOTdlZDZmMjViMTFhODhlNjkwNGIwYTMyNDQy
Li41NjlkZWU3MjJkOGI3ZWU3YjgyYzY1OGZlNmVjNjU0Y2Y2YzkyMDQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTgxLDYgKzE4MSwxNSBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvRW50ZXJQaWN0
dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGlj
dHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNw
cAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAorTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTM0ODMsNiArMzQ5MiwxMyBAQCBK
U1NoYXJlRGF0YS5jcHAKIEpTU2xvdGFibGUuY3BwCiBKU1NvdXJjZUJ1ZmZlci5jcHAKIEpTU291
cmNlQnVmZmVyTGlzdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCitKU1NwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAor
SlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuY3BwCiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YjUzM2VmNmM1
ZjQ0Y2RiODdkYmI4MTIxMTc4OTVjMGNkYzMxZWUzLi5lNzQ3YWI1ZGZiYTEyNWMyZTcyM2E0ZjJk
NzdiOGM2ZGM3Y2E5MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzI2LDYgKzI3MjYsMjEgQEAKIAkJOTM0M0NCODIxMkYy
NUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDNDQjgwMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29k
ZWNVVEY4LmggKi87IH07CiAJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVS
b3dzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9u
LmggKi87IH07CiAJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRD
Ry5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTA3
RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwNjQyNTM4MUQ3QjAwOTlG
MTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA2MzI1MzgxQzA4MDA5OUYxNzEgLyogRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLzsgfTsKKwkJOTM0OTUwNjgyNTM4MURDNjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb24uaCAqLzsgfTsKKwkJOTM0OTUwNkMyNTM4MjU5NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5NTA2QTI1MzgyNTk2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5
NTA3MTI1MzhCMDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTA3MDI1MzhC
MDVGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwN0EyNTM4QzE1NzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDc3MjUzOEMxNTYwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi87IH07CisJCTkzNDk1MDdGMjUzOEMy
NzQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwN0MyNTM4QzI3MjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi87IH07CisJCTkzNDk1MDg2MjUzOEMzOTUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDgzMjUzOEMzOTUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLzsgfTsKKwkJOTM0OTUwODgyNTM4Q0Q2MTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwODcyNTM4Q0Q2MTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MDhBMjUzOEQyNzgwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzQ5NTA4OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzNDk1MDhEMjUzOEQzMUIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwOEIy
NTM4RDMxOTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi87IH07CisJ
CTkzNDk1MDkyMjUzOEQzNkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDhG
MjUzOEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLzsgfTsK
KwkJOTM0OTUwOUEyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDk3MjUz
OEUwM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi87IH07CisJCTkzNDk1
MEExMjUzOTAzM0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDlGMjUzOTAzMjgw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBBNTI1MzkxQjZEMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQTMyNTM5MUI2NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBBNzI1MzkzRDg2MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQTYyNTM5M0NCNDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Q0Mx
MDkwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLzsgfTsKIAkJOTM0Rjcx
M0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxMzkwRDVBNkYx
MDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAx
OEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJy
b3JCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTExMjM0LDYgKzExMjQ5LDM4IEBACiAJCTkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBI
VE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwNjAyNTM4MUMwNzAwOTlGMTcxIC8qIERPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gIkRPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2MjI1MzgxQzA4MDA5OUYxNzEgLyogRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA2MzI1
MzgxQzA4MDA5OUYxNzEgLyogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwNjUyNTM4MURCRTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNjYyNTM4MURCRjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDY3MjUzODFEQkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTA2QTI1MzgyNTk2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzAyNTM4
QjA1RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzUyNTM4QzE1NTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTA3NjI1MzhDMTU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwNzcyNTM4QzE1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3QjI1MzhDMjcyMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3QzI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUw
N0QyNTM4QzI3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDgxMjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MDgyMjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODMyNTM4QzM5
NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwODcyNTM4Q0Q2MTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwODkyNTM4RDI3NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA4QjI1MzhEMzE5MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOEMyNTM4RDMxQTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDhGMjUz
OEQzNkUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDkwMjUzOEQzNkUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwOTEyNTM4RDM2RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUw
OTUyNTM4RTAzQjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDk2MjUzOEUwM0IwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwOTcyNTM4RTAzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA5RjI1MzkwMzI4MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBBMjI1MzkxOEZF
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MEEzMjUzOTFCNjcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQTQyNTM5MUI2NzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MEE2MjUzOTNDQjQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0Q0MxMDkwRURCMjIzOTAw
QTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0U291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGNzEzOTBE
NUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxODAzLDYgKzIxODUwLDggQEAKIAkJCQk1
QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZD
REUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYy
NkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTkz
NDk1MDZBMjUzODI1OTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovLAor
CQkJCTkzNDk1MDcwMjUzOEIwNUYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lz
Q2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxl
VGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJs
ZVRpbWVyLmggKi8sCkBAIC0yNTMxOSw5ICsyNTM2OCwzOSBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0
MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk5MzQ5NTA2MDI1MzgxQzA3MDA5OUYxNzEgLyogRE9NV2luZG93K1NwZWVjaFJl
Y29nbml0aW9uLmlkbCAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCisJCQkJOTM0OTUwNjIyNTM4MUMwODAwOTlGMTcx
IC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcCAqLywKKwkJCQk5MzQ5NTA2MzI1Mzgx
QzA4MDA5OUYxNzEgLyogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLywKIAkJCQlBQTJB
NUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywK
IAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmggKi8sCisJCQkJOTM0OTUwNjUyNTM4MURCRTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
LmNwcCAqLywKKwkJCQk5MzQ5NTA2NjI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b24uaCAqLywKKwkJCQk5MzQ5NTA2NzI1MzgxREJGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b24uaWRsICovLAorCQkJCTkzNDk1MDc2MjUzOEMxNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcCAqLywKKwkJCQk5MzQ5NTA3NzI1MzhDMTU2MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAorCQkJCTkzNDk1MDc1MjUzOEMxNTUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5MzQ5
NTA4OTI1MzhEMjc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oICovLAorCQkJ
CTkzNDk1MDhCMjUzOEQzMTkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
ICovLAorCQkJCTkzNDk1MDhDMjUzOEQzMUEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwgKi8sCisJCQkJOTM0OTUwOTAyNTM4RDM2RTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwOEYyNTM4RDM2RTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovLAorCQkJCTkzNDk1MDkxMjUzOEQz
NkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsICovLAorCQkJCTkz
NDk1MDk1MjUzOEUwM0IwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywK
KwkJCQk5MzQ5NTA5NzI1MzhFMDNDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
ICovLAorCQkJCTkzNDk1MDk2MjUzOEUwM0IwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBBNDI1MzkxQjY3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8sCisJCQkJOTM0OTUwQTMyNTM5MUI2NzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLywKKwkJCQk5MzQ5NTBBMjI1
MzkxOEZFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5
MzQ5NTA5RjI1MzkwMzI4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8s
CisJCQkJOTM0OTUwQTYyNTM5M0NCNDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dERhdGEuaCAqLywKKwkJCQk5MzQ5NTA3QjI1MzhDMjcyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MDdDMjUzOEMyNzIwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkzNDk1MDdEMjUzOEMyNzMwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTM0OTUwODcyNTM4Q0Q2MTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAorCQkJCTkzNDk1MDgy
MjUzOEMzOTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAor
CQkJCTkzNDk1MDgzMjUzOEMzOTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCAqLywKKwkJCQk5MzQ5NTA4MTI1MzhDMzk0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zMDY1NCw3ICszMDczMyw2IEBACiAJCQkJNTE3NDFEMEYw
QjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5NDcyMTcyNTMyM0MyMTAwRjE1
M0M4IC8qIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEy
NEVFODBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYw
QkI2MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODMxOThGQkYyNEExNjBERDAwNDIwQjA1IC8qIEJhc2VBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzEzMjIsNiArMzE0MDAsNyBAQAogCQkJCTUxODVGQzc1MUJCNEM0RTgw
MDEyODk4RiAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODlGNjBCMTExNTdGNjg2RTAwNzVFMTU3IC8qIERPTVdpbmRvd1F1b3RhLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA2NDI1MzgxRDdCMDA5OUYxNzEgLyogRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ2MTZBNDg2MTYw
MDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0NCQjQ5MTUxRjgzMTYwMEFCN0NFOSAvKiBET01XaW5kb3dXZWJEYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3Js
ZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzk4Myw2ICszNDA2MiwyMCBAQAogCQkJCTg0QTgxRjQy
MEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA2ODI1MzgxREM2MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDdBMjUzOEMxNTcwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTA2QzI1MzgyNTk3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNDk1MDcxMjUzOEIwNUYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDhBMjUzOEQyNzgwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA4
RDI1MzhEMzFCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNDk1MDkyMjUzOEQzNkYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MDlBMjUzOEUwM0MwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBB
NTI1MzkxQjZEMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwQTEyNTM5MDMzQzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwQTcyNTM5M0Q4NjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MDdGMjUzOEMyNzQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwODgyNTM4Q0Q2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwODYyNTM4QzM5NTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggNzJjZmFhNWViMDc1OTYwYTczN2ZiZTIzNTFlNTQ5ZGQ0NDRjN2Y2My4uNzYwM2U1
Y2U4NmJhMWYwODdmOTE4YjM4MzUxNTNkZWI3ZTJkN2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVudCBj
b25kaXRpb25hbD1XRUJfUlRDCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgY29uZGl0aW9u
YWw9U1BFRUNIX1JFQ09HTklUSU9OCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGNvbmRpdGlvbmFs
PVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9U1BF
RUNIX1NZTlRIRVNJUwogV2ViR0xDb250ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0b3Jh
Z2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggMzAx
NzEwMDQ0ZmYxM2ExNGMwMjI4ZGEzODkwMmQzZTdkMzM3N2MxMi4uYmEyMzRhNDNjMzIxNjM1NGUw
YTM1NGM4ZGJjMTE3YTU0ZDFlMTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCkBAIC00NCw2ICs0NCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBjb25k
aXRpb25hbD1TRVJWSUNFX1dPUktFUgogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBjb25kaXRp
b25hbD1TRVJWSUNFX1dPUktFUgogU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJD
RQogU291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK1NwZWVjaFJlY29n
bml0aW9uIGNvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKIFRleHRUcmFjayBjb25kaXRpb25h
bD1WSURFTwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApp
bmRleCA1YjA5MzJhY2JiYjEyMjcwYmRmYTI2ODlkN2MyMDc3OTQ4MTllNjc5Li4zZjY5YWEwZmQy
NzNkYmJjODM1ZGVmZjYxMjkyY2Y4NmFmMzUxZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEx
Nyw2ICsxMTcsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKQEAgLTI0OCw2ICsyNDksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFn
ZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgICwgbV93ZWJHTFN0YXRlVHJh
Y2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICNlbmRp
ZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisgICAgLCBtX3NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbikpCisjZW5kaWYKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAs
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNo
U3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkx
YjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kMDgwYWViMGMxOTJkYTA0ODAzMzFiZWE1MWJm
ZTcwZDJmNGNlNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM2LDYgKzEzNiw3IEBAIGNsYXNzIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjsKIGNs
YXNzIFNldHRpbmdzOwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb247CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpAQCAtNzcwLDYg
Kzc3MSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdMU3RhdGVUcmFj
a2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uZ2V0KCk7IH0KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVlY2hT
eW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudC5n
ZXQoKTsgfQogI2VuZGlmCkBAIC05MDUsNiArOTEwLDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2
YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmU4ZWI4MDc2ODk5MzlkNTRhZGJmMGY0
NGIzMmZkOGMxNDU5ZWZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3Mg
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3Mg
V2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBj
bGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsK
QEAgLTExMiw2ICsxMTMsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gd2ViR0xTdGF0ZVRyYWNrZXI7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKyNl
bmRpZgogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hTeW50aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4NjhkMjA2ZjBkZTE2ZjhjMmZmZDllNjBkNGVjYjAyMWI2ODY4NmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVj
b2duaXRpb25FcnJvcjsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2du
aXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2ZDRlMGQ4Y2QyNjQzNzU5YjQ1MjM4ZjNjYmZiN2QyNTYxOGNjNGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2du
aXRpb25DbGllbnQqLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBp
bnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KikgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4
MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uNTg1NmI2ZjgzMTRjYTY4ZjJkNDNlYTNlYWJhYjBh
Y2I1ZDI2ZTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NDgsNiArNjQ4LDcgQEAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDY4MmNiNTI3ZDIzYWRjMWJlZWYxZDAxYTFiMDZkNGY4MzA2NDMwYTEuLmM5NGEyM2U1ZTcxMWYw
MTIwODQ1YTg4YzFhMmQyNDUzZWZhMDVlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtOTg3MCw2ICs5ODcwLDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpt
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRs
ZXI8CiAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNB
c0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklU
SU9OKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RvcCgpCit7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkKK3sKK30KKworI2VuZGlmCisKICNpZiBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3BlZWNoU3lu
dGhlc2l6ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyYmZk
Mjk2NzA1ZjlhY2U2ODhhOTU3ZDNhMzA1NWM5ZjQwZTdkY2QzLi4xODQ5NzU1ZTgwZDNmOTFjMWE5
YmRmMjhlZWQwZGNhNjBkOWU2MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5KYXZhU2NyaXB0
UGFyYW1ldGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0R3JhbnVsYXJpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg+CkBAIC0xNjg2LDYgKzE2ODcsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rp
bmcoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1h
cmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICB2b2lk
IHNwZWVjaFJlY29nbml0aW9uU3RhcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0RGF0YSYpOworICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25TdG9wKCk7CisgICAgdm9p
ZCBzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiYmKT4mJik7CiAgICAg
dm9pZCBzcGVlY2hTeW50aGVzaXNTcGVhayhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBm
bG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9uaWNUaW1lIHN0YXJ0
VGltZSwgY29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5nJiB2b2ljZU5hbWUsIGNv
bnN0IFN0cmluZyYgdm9pY2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0Vm9p
Y2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNDIxNDVmMmM1YzA0YjMzOGFi
MDQxZmIwNmQ2OTY4NmMyZjU3OTE1Mi4uNGE5YzJkZDgwYjIwYjAwYTQ4ZTA3NjIyYTRhNzZkMDc2
ZTc1Y2JmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtNTQ5LDYgKzU0OSwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogCiAgICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNp
emVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgVVJMIHVybCkgLT4gKFN0cmluZyByZXN1
bHQpIFN5bmNocm9ub3VzCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNw
ZWVjaFJlY29nbml0aW9uU3RhcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdERhdGEgcmVzdWx0KQorICAgIFNwZWVjaFJlY29nbml0aW9uU3RvcCgpCisgICAgU3BlZWNo
UmVjb2duaXRpb25BYm9ydCgpCisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lT
KQogICAgIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCgpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJT
cGVlY2hTeW50aGVzaXNWb2ljZT4gdm9pY2VMaXN0KSBTeW5jaHJvbm91cwogICAgIFNwZWVjaFN5
bnRoZXNpc1NwZWFrKFN0cmluZyB0ZXh0LCBTdHJpbmcgbGFuZywgZmxvYXQgdm9sdW1lLCBmbG9h
dCByYXRlLCBmbG9hdCBwaXRjaCwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUsIFN0cmluZyB2b2lj
ZVVSSSwgU3RyaW5nIHZvaWNlTmFtZSwgU3RyaW5nIHZvaWNlTGFuZywgYm9vbCBsb2NhbFNlcnZp
Y2UsIGJvb2wgZGVmYXVsdFZvaWNlKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTU1ZGU5MWRjY2EwMjUzODI4YzEw
ZWE1ZDgzYTY0ZGU5NjUyMjAwMi4uZDUyN2ZjZDU0NDQzMWQ1ZGY1MzUzMmYxMjVlZDExYjhkNzk4
YWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzU2LDYgKzEzNTYsNyBAQAogCQk5MzNFODM1NTIzQTA3QzA2MDBERUYyODkgLyog
V2ViSURCU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzNFODM1MzIzQTA3QkY4MDBERUYyODkgLyogV2ViSURCU2VydmVyLmggKi87IH07CiAJ
CTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTkyM0ExQURG
NTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4MzVCMjNB
MUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAw
REVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzNDk1
MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDcyMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgfTsK
IAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1
QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVE
RiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNX
U2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oICovOyB9OwpAQCAtNDQxMCw2ICs0NDExLDggQEAKIAkJOTMzRTgzNTcyM0ExQTg3MjAwREVG
Mjg5IC8qIFdlYklEQlNlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJOTMzRTgzNTkyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3
MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDczMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTUxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NTMwLDcgKzQ1MzMsNyBAQAogCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0
NzkwOEMyNTMxNEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI0NzkwOEUyNTMxNTFDQzAwRUMxMUFCIC8qIEpTSVBDQmluZGlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0lQQ0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOUI0NzkwOTAyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdl
QXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRp
b25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI0NzkwOTAyNTMxNTYzMjAw
RUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIwMjM2MkE3
RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODkxNiw2ICs4OTE5LDggQEAKIAkJCQk0NjcxRkYxRDIzMjE3RUZG
MDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLywKIAkJCQlEM0I5NDg0NDEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKIAkJCQlEM0I5NDg0
NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCisJCQkJOTM0OTUw
NzMyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTExNDc5LDYgKzExNDg0
LDcgQEAKIAkJCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1v
dXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUFGMjI1
NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzNDk1MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQw
MDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzdlODdlYjQ4YWNmODdi
ZWRhZGY1NTg0NTA1MWVhMjBiNzFhNzJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCogY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVz
dCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKGNsaWVudCwgbGFu
ZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcyk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYXBwZW5kKHJlcXVlc3QucHRyKCkpOworICAgIHByb2Nlc3NQZW5kaW5n
UmVxdWVzdCgpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVt
b3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdl
KG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlz
RW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZp
cnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnQoKSA9PSBjbGllbnQpIHsKKyAgICAg
ICAgICAgIGNsaWVudC0+ZGlkRW5kKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IoKSk7
CisgICAgICAgICAgICAvLyBPbmUgY2xpZW50IHNob3VsZCBoYXZlIG9uZSByZXF1ZXN0IGF0IGEg
dGltZS4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCogY2xpZW50KQoreworICAgIGlmIChjdXJyZW50Q2xpZW50KCkgPT0gY2xpZW50KSB7
CisgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNwZWVjaFJlY29n
bml0aW9uU3RvcCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICByZW1vdmVQ
ZW5kaW5nUmVxdWVzdEZyb21DbGllbnQoY2xpZW50KTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KiBjbGllbnQpCit7CisgICAgaWYgKGN1cnJlbnRDbGllbnQoKSA9PSBjbGllbnQpIHsKKyAgICAg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoUmVjb2duaXRpb25B
Ym9ydCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1
ZXN0RnJvbUNsaWVudChjbGllbnQpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cHJvY2Vzc1BlbmRpbmdSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFtX3BlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkgJiYgIWN1cnJlbnRDbGllbnQoKSkKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworCisgICAgaWYgKGN1cnJlbnRDbGllbnQo
KSkKKyAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoUmVj
b2duaXRpb25TdGFydChtX2N1cnJlbnRSZXF1ZXN0LT5kYXRhKCkpKTsKK30KKwordm9pZCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1
ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY2xpZW50ID0gY3VycmVudENs
aWVudCgpKQorICAgICAgICBjbGllbnQtPmRpZEVuZChlcnJvcik7CisKKyAgICBtX2N1cnJlbnRS
ZXF1ZXN0ID0gbnVsbHB0cjsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246OnByb2dyZXNzRGlkVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRl
IHJlY2VpdmVzIHVwZGF0ZSB3aGVuIG5vdCBwcm9jZXNzaW5nIHJlcXVlc3RzIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgIGlm
ICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciB8fCB0
eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFbmQpIHsKKyAgICAg
ICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCh1cGRhdGUuZXJyb3IoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvKiBjbGllbnQgPSBjdXJyZW50Q2xpZW50KCk7CisgICAgaWYg
KCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTdGFydCkKKyAgICAgICAgY2xpZW50LT5kaWRTdGFy
dCgpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBl
OjpBdWRpb1N0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsK
KyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U291
bmRTdGFydCkKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAg
aWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaFN0
YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCk7CisgICAgaWYg
KHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaEVuZCkK
KyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgaWYgKHR5cGUg
PT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kRW5kKQorICAgICAg
ICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgIGlmICh0eXBlID09IFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpBdWRpb0VuZCkKKyAgICAgICAgY2xpZW50
LT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0KQorICAgICAgICBjbGllbnQtPmRpZFJlY2Vp
dmVSZXN1bHQodXBkYXRlLnJlc3VsdHMoKSk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6Ok5vTWF0Y2gpCisgICAgICAgIGNsaWVudC0+ZGlkRmlu
ZE5vTWF0Y2goKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVudCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRS
ZXF1ZXN0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBtX2N1cnJlbnRS
ZXF1ZXN0LT5jbGllbnQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDlmMDUxMTgwYThhZTc2YzJhNGM0OTM1NmIwMjg5ODI4YWFkZDM0NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8
V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpOwor
CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0
IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50
NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCopIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQqKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2Nl
c3NQZW5kaW5nUmVxdWVzdCgpOworICAgIHZvaWQgY29tcGxldGVDdXJyZW50UmVxdWVzdChjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgdm9pZCByZW1vdmVQZW5k
aW5nUmVxdWVzdEZyb21DbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqKTsK
KyAgICB2b2lkIHByb2dyZXNzRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUmKTsKKworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KiBjdXJyZW50Q2xpZW50KCk7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgRGVxdWU8
UmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVl
c3RzOworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3Vy
cmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDQ2MGM2
ZDc2MzMwYjg5YmYzMTc4YTdlY2Q3NjQwODk0ZmFmMWFkOC4uMDVmNDI3Njg0YTdlOTU3M2EyMWIy
ODEyMDJmMWFjNjFkNWM4NGY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgog
I2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyNywxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVVuaXF1
ZTxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCp0aGlzKTsKKyNlbmRpZgorICAgIAog
I2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNwZWVj
aFN5bnRoZXNpc0NsaWVudCA9IG1ha2VVbmlxdWU8V2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Pigq
dGhpcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IDE3NTdhNmE5YjFi
MTI1MzAxMzVhYjhmNzdiMWVhNTlmNmIwMmVkZTguLjViM2U3MDBlMDk1OGUyZmJkNTY5MTc4MDQy
NzFkZWRjOTRmYzVlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KQEAgLTMzLDcg
KzM0LDYgQEAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAog
bmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411528</attachid>
            <date>2020-10-15 20:33:03 -0700</date>
            <delta_ts>2020-10-15 22:26:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015203300.patch</filename>
            <type>text/plain</type>
            <size>150436</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM3NmY2NjMzZWI1MzBiNGQ2ODRkZjIw
M2NlNjY1YmQxYmE5MTc4Y2MuLjc2MzYxYmMzODk1MDk5MmUzZTI0ZGNmYzQzMWE4MzFkZTEzOTlh
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWFrT2JqQ1B0ci5oIGlzIG5vdCBzYWZlIHRvIGluY2x1ZGUgaW4gQysrIHNvdXJjZSBmaWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDM3NzNkY2I1NGE0Nzg4OWFiYzYyZTE0NDg2N2Y4MDdiNTI0MjU5YjEu
LjdiNTY3NDk1MDkxNDU1ZDg5OGU3MzlmNTM5NTI1MGM1OGQxODUzM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMjQgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OkRPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJl
Y29nbml0aW9uOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbjo6ZnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NvdW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmlu
Z1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENh
cHR1cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
U3RvcENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpkaWRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFJl
Y2VpdmVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFjdGl2
ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmxhbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldExh
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNvbnRpbnVvdXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldENvbnRpbnVvdXMp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmludGVyaW1SZXN1bHRzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRJbnRlcmltUmVz
dWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bWF4QWx0ZXJuYXRp
dmVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRNYXhB
bHRlcm5hdGl2ZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjppc051
bGwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRl
Y29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2Ug
Y29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6
dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGU6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGU6OnJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6dHlwZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
OjplcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlOjpyZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y2xpZW50
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6ZGF0
YSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3REYXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9TcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oOiBBZGRlZC4KKwogMjAyMC0xMC0xNSAgS2VpdGggUm9sbGluICA8a3Jv
bGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTGVzc2VuIHRoZSByZWxpYW5jZSBvbiBWUEFUSCBp
biBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdiZDI5ODA3YjU0ZGZl
YTU1YWRjYTI3NTZhYTg2MzkwOTdmNWU0ZS4uYmYyMzM2NWM2NWMyNjkzN2YzY2JkZTU5OWM4Nzcx
NzYyOTc3NzY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMC0xMC0xNSAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVj
aFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdG9wKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFib3J0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlbW92ZVBlbmRpbmdSZXF1ZXN0
RnJvbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OnByb2Nlc3NQZW5kaW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y29tcGxldGVDdXJyZW50UmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJvZ3Jlc3NEaWRVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmN1
cnJlbnRDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9u
c1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcDoKKwogMjAyMC0xMC0xNSAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHYyOiBXZWJLaXQ6OlhQQ1NlcnZpY2VFdmVudEhh
bmRsZXIgYmxvY2sgc2hvdWxkIGNhbGwgZXhpdCgpIG9uIHRoZSBtYWluIHRocmVhZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IGNkZDk5YjdmOTQyOGRlMTFhNGQxZjg5Njc0
MTA2NTM4ZTY0NTY0NWUuLjMxMTdlZjRkMzYyNmFlNTRiMGFiMjY0NWIyOTc0NmI3OWFiYjQ5MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyNSw2ICs0MjUsMTAgQEAK
ICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAjZW5kaWYKIAorI2lm
ICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisjZW5kaWYKKwogI2lm
ICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCiAjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAxMDI4YTM5ZWQxMDAxNWEyOWM5OGRhNDAzMjY2YTRkNjg5YzYzZTkxLi42
NjViMzljMmM0ZmFkOGU1YTFkM2QzNzdhNWQxNWY2NWNkMzExMWZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtNDM2LDYgKzQzNiwxNSBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAgICAgTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbAog
CisgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAg
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAor
CiAgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAppbmRleCA4NmEwNzc0MWYzODQ0NzkyMGFhMGU5Mjc2MmJkNGUwZTZl
NjJkZDcwLi5iZjE1N2U5YjcwZTlmMzM3OGU5OTkzNTVlNTNlY2E5M2FiOWJjNDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2
ICsyNzksMTQgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3Ir
U3RvcmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9I
VE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwK
KyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlv
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA3ZjkzNzFhNDBmMTgxMGVhNTgwYmE0YThlNzk3
NjlkMGY2ODdkYzliLi5lNDE2OTgwMTU3ZDkwOWVjYjcwNzcyODhlNTQxODc2MzM5ZWY4ZmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApA
QCAtNTUwLDYgKzU1MCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NlbGVjdGlvbi5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVlY2hTeW50
aGVzaXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytTcGVl
Y2hSZWNvZ25pdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTVdpbmRvdytWaXN1YWxWaWV3cG9ydC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1Zpc3VhbFZpZXdwb3J0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1dl
YkRhdGFiYXNlLmNwcApAQCAtNTY0LDYgKzU2Niw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93UXVvdGEuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1F1b3RhLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93V2ViRGF0YWJhc2UuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3dXZWJHUFUuY3Bw
CkBAIC0yMTA4LDYgKzIxMTIsMjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3Qu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRo
ZXNpcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
NjlmMGViYmY5OWI2YzBmZGYzM2U4NzZkMDkxNmUwNzU5MjE1YjEyYS4uODk1M2NmOTE4NTEyNjM3
ZTg2NDFjYjBlMmI2YTJjMjlkZjc3YjczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0zMDYsNiArMzA2LDE0IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsIFwKKwkk
KFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwg
XAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxlbmd0aFF1
ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50
UXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlvbi5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDNhNDNhNjRiNWMxYjY3MTM0MzY5Yzc1MjdhOWZhZjA5NDRkYWViMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytT
cGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50ZWRCeT1ET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbgorXSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbiBzcGVlY2hSZWNvZ25pdGlv
bjsKKyAgICBbSW1wbGVtZW50ZWRBcz1zcGVlY2hSZWNvZ25pdGlvbl0gcmVhZG9ubHkgYXR0cmli
dXRlIFNwZWVjaFJlY29nbml0aW9uIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29n
bml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2JjMmViZDVlOTViZjkzOWY4YTcwNDc1ODg4
NmUzOWI4MTVhNWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0
aW9uKERPTVdpbmRvdyogd2luZG93KQorICAgIDogRE9NV2luZG93UHJvcGVydHkod2luZG93KQor
eworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6fkRPTVdpbmRvd1NwZWVjaFJlY29n
bml0aW9uKCkgPSBkZWZhdWx0OworCitjb25zdCBjaGFyKiBET01XaW5kb3dTcGVlY2hSZWNvZ25p
dGlvbjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiRE9NV2luZG93U3BlZWNoUmVj
b2duaXRpb24iOworfQorCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb246OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dTcGVl
Y2hSZWNvZ25pdGlvbio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gbWFrZVVuaXF1ZTxET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbj4od2luZG93
KTsKKyAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQuZ2V0KCk7CisgICAgICAgIHBy
b3ZpZGVUbyh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCksIFdURk1vdmUobmV3U3VwcGxlbWVudCkp
OworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworU3BlZWNoUmVjb2duaXRpb24q
IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzcGVlY2hSZWNvZ25pdGlvbihET01XaW5kb3cm
IHdpbmRvdykKK3sKKyAgICByZXR1cm4gRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OmZyb20o
JndpbmRvdyktPnNwZWVjaFJlY29nbml0aW9uKCk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uKiBE
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6c3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGF1
dG8qIHdpbmRvdyA9IHRoaXMtPndpbmRvdygpOworICAgIGlmICghd2luZG93KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9
IHdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAocGFnZS0+aXNDbG9zaW5n
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0
aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uID0gU3BlZWNoUmVjb2duaXRpb246OmNy
ZWF0ZSgqZG9jdW1lbnQpOworCisgICAgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb24uZ2V0KCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9E
T01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWRiYjcwZTFmMDg4
YWE4ZDBhNTFkNTgyYTE1N2QzMjcwZDBiM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uaApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNI
X1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworCitjbGFzcyBET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PERPTVdpbmRvdz4sIHB1YmxpYyBE
T01XaW5kb3dQcm9wZXJ0eSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93Kik7Cisg
ICAgdmlydHVhbCB+RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvbiogc3BlZWNoUmVjb2duaXRpb24oRE9NV2lu
ZG93Jik7CisgICAgc3RhdGljIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKiBmcm9tKERPTVdp
bmRvdyopOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uKiBzcGVlY2hSZWNvZ25p
dGlvbigpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAg
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZWY0ZTMyMGVjYWMyNzA0YzhmMjc5MWIxMGUzZGIyYjUyZTE4
NTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsMTg2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9u
KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvbihkb2N1bWVudCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2du
aXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50
KQoreworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7CisgICAgICAgIGF1
dG8qIGNsaWVudCA9IHBhZ2UtPnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpOworICAgICAg
ICBpZiAoY2xpZW50KQorICAgICAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24g
PSBtYWtlV2Vha1B0cigqY2xpZW50KTsKKyAgICB9Cit9CisKK1NwZWVjaFJlY29nbml0aW9uOjp+
U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpTdGFydGlu
ZyB8fCBtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICBhYm9ydCgpOworfQorCitF
eGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnQoKQoreworICAgIGlmICht
X3N0YXRlICE9IFN0YXRlOjpJZGxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJSZWNvZ25pdGlvbiBpcyBiZWluZyBzdGFydGVkIG9yIGFscmVhZHkgc3Rh
cnRlZCJfcyB9OworCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAg
ICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RhcnQodGhpcywgbV9sYW5nLCBt
X2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAg
IG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7CisKKyAgICByZXR1cm4geyB9OworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpzdG9wKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6
U3RhcnRpbmcgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJS
T1IoIlJlY29nbml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RvcCh0aGlz
KTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBpbmc7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmFib3J0KCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcg
JiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29n
bml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQor
ICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+YWJvcnQodGhpcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OkFib3J0aW5nOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdGFydCgpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKQoreworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9zdGFydEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hzdGFydEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zb3VuZGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRGaW5kTm9NYXRjaCgpCit7CisgICAgZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5vbWF0Y2hFdmVudCwgMCwgbnVsbHB0cikpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQoY29uc3QgU3BlZWNoUmVjb2duaXRp
b25FcnJvciYgZXJyb3IpCit7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxlOworICAgIG1fZmlu
YWxSZXN1bHRzLmNsZWFyKCk7CisKKyAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSAKKyAgICAgICAg
ZGlzcGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuZXJyb3JFdmVudCwgKmVycm9yLnR5cGUsIGVycm9yLm1lc3NhZ2UpKTsKKyAgICBlbHNl
CisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZW5kRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+JiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRz
LnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXpl
KCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAg
IHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBm
b3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9y
IChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAg
ICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpj
cmVhdGUoYWx0ZXJuYXRpdmVEYXRhLnRyYW5zY3JpcHQsIGFsdGVybmF0aXZlRGF0YS5jb25maWRl
bmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6
OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7CisgICAg
ICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1bHRz
LmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4Owor
ICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0KSk7
CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBub25G
aW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisKK2Nv
bnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMTM3MDJjOWI1MDE1NmIwY2E3MzczNmYx
OWZlY2NjZWU1ZDk2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25p
dGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgflNwZWVjaFJlY29n
bml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xh
bmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9IGxh
bmc7IH0KKworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91
czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVvdXMpIHsgbV9jb250aW51
b3VzID0gY29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsg
cmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldEludGVyaW1SZXN1bHRzKGJv
b2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOyB9
CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFs
dGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1heEFs
dGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsgfQorCisg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnQoKTsKKyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lk
IGFib3J0KCk7CisKKyAgICAvLyBUT0RPOiBtYWtlIHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29y
cmVjdC4KKyAgICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1
cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQg
ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmlu
Z1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3Vs
dChjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpIGZpbmFsOworCisg
ICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwor
Citwcml2YXRlOgorICAgIGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBTdGFydGluZywKKyAg
ICAgICAgUnVubmluZywKKyAgICAgICAgU3RvcHBpbmcsCisgICAgICAgIEFib3J0aW5nLAorICAg
ICAgICBJZGxlLAorICAgIH07CisgICAgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKwor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKKworICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAg
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAg
ICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0
YXRlOjpJZGxlIH07CisgICAgLy8gVE9ETzogZGVjaWRlIGRlZmF1bHQgbGFuZ3VhZ2UuCisgICAg
U3RyaW5nIG1fbGFuZzsKKyAgICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0
aXZlcyB7IDEgfTsKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9z
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9maW5hbFJlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MmViY2VlZTk0MjEyZTJhNGFjNjRlYjhi
OTI3ZDdkYThiNmRjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09H
TklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlv
biB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcigpOworCisgICAgYXR0cmli
dXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRpbnVvdXM7Cisg
ICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJlc3VsdHM7CisgICAgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRl
ZmluZWQgc3RhcnQoKTsKKyAgICB1bmRlZmluZWQgc3RvcCgpOworICAgIHVuZGVmaW5lZCBhYm9y
dCgpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvc3RhcnQ7CisgICAgYXR0
cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnNwZWVjaHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zcGVlY2hl
bmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kZW5kOworICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25hdWRpb2VuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
cmVzdWx0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ub21hdGNoOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
c3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVuZDsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MjdiYzE5MmIzOWI3YWYwNDZmZDJmYTI5ZjRh
YWVhOTUzNzgyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25m
aWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUodHJhbnNjcmlwdCwgY29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYg
dHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNj
cmlwdCkKKyAgICAsIG1fY29uZmlkZW5jZShjb25maWRlbmNlKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNhNmUxMWY5ZGI3NTEwOGQyMjhkMmJhMjQ2MjhlZjc0MzRhZmIyNTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2Mu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiB7CisgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKTsKKworICAgIFN0cmluZyB0cmFuc2NyaXB0
KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NyaXB0OyB9CisgICAgZG91YmxlIGNvbmZpZGVuY2Uo
KSBjb25zdCB7IHJldHVybiBtX2NvbmZpZGVuY2U7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNp
dCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwg
ZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFl
YWE0M2Q0Nzk2ZGQ5ODM3YmVjOWQyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ4NTIyNTY5ODhi
ODZkZjgzMTkwNzY2Y2Y4Mzg5ZDNkZWRjN2E2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsx
LDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAgICBO
b1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAor
ICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwK
KyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB0eXBlOwor
ICAgIFN0cmluZyBtZXNzYWdlOworCisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAh
dHlwZS5oYXNWYWx1ZSgpOyB9CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IG1l
c3NhZ2U7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yPiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHJlc3VsdDsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC50eXBlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1lc3NhZ2UpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm9T
cGVlY2gsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9y
dGVkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9D
YXB0dXJlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6TmV0
d29yaywKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFs
bG93ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpTZXJ2
aWNlTm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6OkJhZEdyYW1tYXIsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpMYW5ndWFnZU5vdFN1cHBvcnRlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDJiOWMxNGY1YzU5
ZjUxMTkxMDExNTkzNzZkNGYyYWExYTQ2NGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNI
X1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E0MTlkNDM4NTMxZDI1
ZGE5MGFkYTdhZDA4NDMzOTA3YzM1ZDc5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05J
VElPTiwKK10gZW51bSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7CisgICAgIm5vLXNwZWVj
aCIsCisgICAgImFib3J0ZWQiLAorICAgICJhdWRpby1jYXB0dXJlIiwKKyAgICAibmV0d29yayIs
CisgICAgIm5vdC1hbGxvd2VkIiwKKyAgICAic2VydmljZS1ub3QtYWxsb3dlZCIsCisgICAgImJh
ZC1ncmFtbWFyIiwKKyAgICAibGFuZ3VhZ2Utbm90LXN1cHBvcnRlZCIKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWYzMTgyYzE4YzEyNGUyNTJmN2YxMTcxOGMyMDVl
MDY1ZmJlYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElz
VHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkpOworfQorCitSZWY8U3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBl
cnJvciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCh0eXBlLCBlcnJvciwgbWVzc2FnZSkpOworfQor
CitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNU
cnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9lcnJv
cihpbml0LmVycm9yKQorICAgICwgbV9tZXNzYWdlKGluaXQubWVzc2FnZSkKK3sKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29u
c3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fZXJyb3IoZXJyb3IpCisgICAg
LCBtX21lc3NhZ2UobWVzc2FnZSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50OjpldmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEludGVyZmFjZVR5cGU7Cit9CisKK307IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YjVmZmYxY2ZmMDM0OTkxZGYyYjMxNWZiMTE0YjYxNWE4NGI4YzFlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAg
ICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6
Tm8pOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJp
bmcmKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9lcnJvcjsgfQorICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9t
ZXNzYWdlOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLCBjb25zdCBTdHJpbmcmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJm
YWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBt
X2Vycm9yOworICAgIFN0cmluZyBtX21lc3NhZ2U7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzA2
NjI2NWQzYzk3YTRkNGMxOTBlNzNkODU3OGJlMDI5ZDQzMjM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQ
RUVDSF9SRUNPR05JVElPTiwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7Cit9OworCitkaWN0aW9u
YXJ5IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJl
cXVpcmVkIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIERPTVN0cmluZyBt
ZXNzYWdlID0gIiI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTljODhiMmRhYjlh
MjE3ZTcxNTFhMmZkNjYyZjEwNjEzMTgyZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FdmVudCk7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIGlu
aXQsIGlzVHJ1c3RlZCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVpbnQ2NF90
IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmIHJlc3Vs
dHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0
eXBlLCByZXN1bHRJbmRleCwgV1RGTW92ZShyZXN1bHRzKSkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBl
LCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX3Jlc3VsdEluZGV4KGluaXQucmVzdWx0SW5kZXgp
CisgICAgLCBtX3Jlc3VsdHMoaW5pdC5yZXN1bHRzKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVp
bnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYm
IHJlc3VsdHMpCisgICAgOiBFdmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX3Jlc3VsdEluZGV4KHJlc3VsdEluZGV4KQorICAg
ICwgbV9yZXN1bHRzKFdURk1vdmUocmVzdWx0cykpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gU3BlZWNoUmVjb2duaXRpb25FdmVudEludGVyZmFjZVR5cGU7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiNjE5NzdkYjNh
ZmE2MjQ2NzJjYzE1MTk1ZWU0NWNmMjAzYTgzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoU3BlZWNoUmVjb2duaXRpb25FdmVudCk7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQg
OiBFdmVudEluaXQgeworICAgICAgICB1aW50NjRfdCByZXN1bHRJbmRleDsKKyAgICAgICAgUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gcmVzdWx0czsKKyAgICB9OworCisgICAg
c3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmlu
ZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgdWlu
dDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYp
OworCisgICAgdWludDY0X3QgcmVzdWx0SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdElu
ZGV4OyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KiByZXN1bHRzKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXN1bHRzLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2du
aXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7Cisg
ICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVz
dWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAg
RXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHVp
bnQ2NF90IG1fcmVzdWx0SW5kZXg7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdD4gbV9yZXN1bHRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4YzNlYzJlMTQ4NGMwZTk3OGJmMWJiYTQyYTJi
ZDM0MzExYzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9
V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IDogRXZlbnQgeworICAg
IGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCBl
dmVudEluaXREaWN0KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyByZXN1
bHRJbmRleDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0IHJlc3VsdHM7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0
IDogRXZlbnRJbml0IHsKKyAgICB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4ID0gMDsKKyAgICBy
ZXF1aXJlZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MDM3MTBkNDdjZTRiMGY5YTM0
MzBkMzZiODg5MjZhMzcxZGI0OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjp1cGRhdGUoU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB7IHR5cGUgfTsKK30KKworU3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlIHVwZGF0ZSB7IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlOjpFcnJvciB9OworICAgIHVwZGF0ZS5tX2Vycm9yID0gZXJyb3I7CisgICAgcmV0dXJu
IHVwZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlOjpyZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZSB1cGRhdGUgeyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVz
dWx0IH07CisgICAgdXBkYXRlLm1fcmVzdWx0cyA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHVwZGF0
ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6U3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSB0eXBl
KQorICAgIDogbV90eXBlKHR5cGUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNjOWI0OGNh
NzAwZTk0YWMzMmUyMmM1ZjdlZWM1ZjMzOTQwYWQyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUu
aApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJy
b3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgeworICAgIFN0YXJ0LAorICAgIEF1
ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVlY2hF
bmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5vTWF0
Y2gsCisgICAgRXJyb3IsCisgICAgRW5kLAorICAgIEludmFsaWQsCit9OworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB1cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZVR5cGUpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
IGVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImKTsKKyAgICBzdGF0aWMgU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSByZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3VsdHM7IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGVUeXBlIG1fdHlwZTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIG1f
ZXJyb3I7CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gbV9yZXN1bHRz
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX3R5cGUgPDwgbV9lcnJvciA8PCBtX3Jlc3VsdHM7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+IFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpJbnZhbGlkKTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3R5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9lcnJvcikpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jlc3VsdHMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3RhcnQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpBdWRpb1N0YXJ0LAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U291bmRT
dGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5
cGU6OlNwZWVjaFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlVHlwZTo6U3BlZWNoRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U291bmRFbmQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpBdWRpb0VuZCwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlJlc3VsdCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6Ok5vTWF0Y2gsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJv
ciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5
cGU6OkludmFsaWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E1Mzc0OGY2NjI2YTc2MTMyNTBkOTdjNzBl
YTVmZGE0NTViMTA1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCwgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVz
dWx0cywgbWF4QWx0ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQs
IGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRz
LCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihj
bGllbnQpKQorICAgICwgbV9kYXRhKFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgeyBsYW5n
LCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH0pCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2YmY2MGVlMTU3N2NlYzFkNTBkZjdlZWY2MThiZDI5NWIyNzMxY2IKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNP
R05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQqLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBi
b29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAgV2Vh
a1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4gbV9jbGllbnQ7CisgICAgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0RGF0YSBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNzAwM2FiZjYwODJm
M2ZiOGVkYWI4ZTA2Y2U0NDNhNjIzNzBlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgKQEAgLTAs
MCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKKy8qZW51bSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07Cisg
dXNpbmcgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZp
ZXI8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworIGF1dG8gaWRlbnRp
ZmllciA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXI6OmdlbmVyYXRlKCk7Cisq
LworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSB7CisgICAgU3RyaW5nIGxh
bmc7CisgICAgYm9vbCBjb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIGludGVyaW1SZXN1
bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMgeyAxIH07CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGxhbmcgPDwgY29udGludW91cyA8
PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5sYW5nKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbnRpbnVvdXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW50ZXJpbVJlc3Vs
dHMpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQubWF4QWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRhZTAwMTA3Nzc2ZTdkMTlmM2Y1
N2Q2ZDUwMmJjYzdmNGYwMDk2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQpOworCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVh
dGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2
ZXMsIGJvb2wgaXNGaW5hbCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdChXVEZNb3ZlKGFsdGVybmF0aXZlcyksIGlzRmluYWwpKTsKK30KKworU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmlu
YWwpCisgICAgOiBtX2FsdGVybmF0aXZlcyhXVEZNb3ZlKGFsdGVybmF0aXZlcykpCisgICAgLCBt
X2lzRmluYWwoaXNGaW5hbCkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIChpbmRleCA8IG1fYWx0ZXJuYXRpdmVzLnNpemUoKSkgPyBtX2FsdGVybmF0aXZl
c1tpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDEzMjM1OWU4MGRhNDk4YWYzNjJiZGY2
OTU4ZTAyN2U2ZDFkZGMwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKyNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICB1aW50NjRfdCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2FsdGVybmF0aXZlcy5zaXplKCk7IH0KKyAgICBib29s
IGlzRmluYWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmluYWw7IH0KKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlKiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiYmLCBib29sIGlzRmluYWwpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4gbV9hbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBtX2lzRmlu
YWwgeyBmYWxzZSB9OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTM2ZWU0ZTNhODFlNDUyZTJiYzU1MTM2ZGE4Nzc2Y2UzMjI0NDIyYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAg
IEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNGaW5hbDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjExMjg4ZTA2MGExZjM4MThlZTQxY2E5ZDZkYzQ2MjZjY2Q3MTIy
ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSB7
CisgICAgU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgZG91YmxlIGNvbmZpZGVuY2U7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdHJhbnNjcmlwdCA8PCBj
b25maWRlbmNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJh
bnNjcmlwdCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5jb25maWRlbmNlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEgeworICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4g
YWx0ZXJuYXRpdmVzOworICAgIGJvb2wgaXNGaW5hbCB7IGZhbHNlIH07CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBhbHRlcm5hdGl2ZXMgPDwgaXNGaW5hbDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgcmVzdWx0OworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsdGVybmF0aXZlcykpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0ZpbmFsKSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YjllN2EwNjA1ZjFjZDUwOWIzNjM3OTJmYzMxMmIxMjJmYTQ4MzZiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCgpKTsKK30KKworUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVh
dGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoV1RGTW92ZShs
aXN0KSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5k
ZXggPCBtX2xpc3Quc2l6ZSgpKSA/IG1fbGlzdFtpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0JiByZXN1bHQpCit7CisgICAgbV9saXN0LmFwcGVuZChtYWtlUmVmKHJlc3VsdCkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQorICAgIDog
bV9saXN0KFdURk1vdmUobGlzdCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOThhOTI0MGM5MDBjNDhk
YmY0OWYzNDE3ODI2MDY2ZmVlOTY1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBmaW5hbCA6
IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4geworICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0
b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBib29sIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CisKKyAgICB2b2lkIGFkZChTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCYpOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCgpID0gZGVmYXVsdDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVj
dG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOworCisgICAgVmVjdG9yPFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IG1fbGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlmOGZm
NjVmOGUxZDAxMGU0YmQ3MzExZGI4MjhiM2YyMGY5YTQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVF
Q0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBv
c2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApp
bmRleCA5Yzg4NzUxZTNjNjgwNjQxZGQzZDBiNDYzYTU4NWY4NTliMDljMjczLi5mZDVjNDQ5MTQw
MWQyM2QyMWNjYzBhZjk1Mzk4ZDNlOTQ5OTRiYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApAQCAtMzIsNiArMzIsNyBAQAog
CiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYWVmMWI2MjMyMTI1
ZTM2NDliOTBmNDNkZTM4OTZhOWQwY2FjN2FkOS4uZGYzZThmY2VlNzkwMjg5NDU1OTBhZDk5YWRk
YWI5MTYzZGVkMDc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4MSw2ICsxODEsMTUgQEAgTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcAogTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAog
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1
bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAorTW9kdWxlcy9zcGVlY2gvRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3Bw
CitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwCkBAIC0zNDg0LDYgKzM0OTMsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBKU1Nsb3RhYmxlLmNw
cAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCitKU1NwZWVjaFJl
Y29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorSlNTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogSlNTcGVlY2hTeW50
aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMWFjZjE0NDM5OTI0ODU4MTQ4ZGQyMGI5ZThkZTdhNTFlM2IyMmRj
ZS4uYmFkOGI5MmQ2NzQwOWIxYzhkMmU3ODAyZjE1MTljZGYwOGNhOTQ2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjcyNiw2
ICsyNzI2LDIxIEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4
MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZG
OSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzNDk1MENDMjUzOTQzNUQwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25p
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
OTUwQkUyNTM5NDM0RjAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggKi87
IH07CisJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5
NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1MENFMjUz
OTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTBD
RjI1Mzk0MzY4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjIyNTM5NDM0ODAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oICovOyB9OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggKi87IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oICovOyB9OworCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICov
OyB9OworCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQ5NTBCMDI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUw
RDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OworCQk5MzQ5
NTBENzI1Mzk0M0JCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCNTI1Mzk0MzRB
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRDgyNTM5NDNDMzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwREIyNTM5NDNFNDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTBEOTI1Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
MzQ5NTBEQzI1Mzk0M0U2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBEQTI1
Mzk0M0UyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0Q0MxMEEwRURCMjIz
OTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRT
b3VyY2VDb2RlLmggKi87IH07CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzRGNzEzQzBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1
QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTIzNyw2ICsxMTI1MiwzOCBAQAogCQk5
MzQ0MkM5RDBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8q
IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0OTA3RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENH
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjAyNTM5
NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEIyMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBC
NDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEI1MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEI2MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQkUyNTM5NDM0RjAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMwMjUzOTQzNTAw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzIyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM1MjUzOTQzNTMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEM2MjUzOTQzNTMwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTBDQTI1Mzk0MzU1MDA5OUYxNzEgLyogRE9NV2luZG93K1NwZWVj
aFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MERBMjUzOTQzRTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAv
KiBTY3JpcHRTb3VyY2VDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdFNvdXJjZUNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzcw
RDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VC
YXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzkwRDVBNkYxMDAw
MDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTgwOCw2ICsyMTg1NSw4IEBACiAJCQkJNUM3Qzg4RDcx
RDBGMUYyQjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDEx
NDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk5MzQ5NTBEOTI1
Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLywKKwkJCQk5MzQ5
NTBEQTI1Mzk0M0UyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8s
CiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
ICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNw
cCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5o
ICovLApAQCAtMjUzMjUsOSArMjUzNzQsMzkgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1
IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJOTM0OTUwQ0EyNTM5NDM1NTAwOTlGMTcxIC8qIERPTVdpbmRvdytTcGVlY2hSZWNvZ25pdGlv
bi5pZGwgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVl
Y2hTeW50aGVzaXMuaWRsICovLAorCQkJCTkzNDk1MEM2MjUzOTQzNTMwMDk5RjE3MSAvKiBET01X
aW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwQkUyNTM5NDM0RjAwOTlG
MTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggKi8sCiAJCQkJQUEyQTVBQjgxNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEy
QTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAor
CQkJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8s
CisJCQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8s
CisJCQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAq
LywKKwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUwQjIyNTM5
NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKKwkJCQk5MzQ5NTBB
RjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKKwkJ
CQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUu
aWRsICovLAorCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCQTI1Mzk0MzREMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBDMDI1
Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJCQkJOTM0
OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKKwkJ
CQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwg
Ki8sCisJCQkJOTM0OTUwQzIyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUuY3BwICovLAorCQkJCTkzNDk1MEIzMjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggKi8sCisJCQkJOTM0OTUwQjYyNTM5NDM0QTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTM0OTUwQjUy
NTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJCTkz
NDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgg
Ki8sCisJCQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcCAqLywKKwkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaCAqLywKKwkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkzNDk1MEIwMjUzOTQzNDcwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLywKKwkJCQk5MzQ5NTBCRDI1Mzk0MzRG
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk5MzQ5
NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8s
CisJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5pZGwgKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVz
aXMuaWRsICovLApAQCAtMzEzMjcsNiArMzE0MDYsNyBAQAogCQkJCTUxODVGQzc1MUJCNEM0RTgw
MDEyODk4RiAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODlGNjBCMTExNTdGNjg2RTAwNzVFMTU3IC8qIERPTVdpbmRvd1F1b3RhLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDQzI1Mzk0MzVEMDA5OUYxNzEgLyogRE9NV2luZG93
U3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ2MTZBNDg2MTYw
MDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0NCQjQ5MTUxRjgzMTYwMEFCN0NFOSAvKiBET01XaW5kb3dXZWJEYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1M0RBMkUxMTQzMTIxRTAwMEQ4MTdFIC8qIERPTVdyYXBwZXJXb3Js
ZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzk4OCw2ICszNDA2OCwyMCBAQAogCQkJCTg0QTgxRjQy
MEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTBEQjI1Mzk0M0U0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNDk1MERDMjUzOTQzRTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENGMjUzOTQzNjgwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBE
MDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBE
MzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDcyNTM5NDNCQjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDgyNTM5NDNDMzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDUyNTM5NDM3RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDYyNTM5NDM4MTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggNzJjZmFhNWViMDc1OTYwYTczN2ZiZTIzNTFlNTQ5ZGQ0NDRjN2Y2My4uNzYwM2U1
Y2U4NmJhMWYwODdmOTE4YjM4MzUxNTNkZWI3ZTJkN2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVudCBj
b25kaXRpb25hbD1XRUJfUlRDCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgY29uZGl0aW9u
YWw9U1BFRUNIX1JFQ09HTklUSU9OCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGNvbmRpdGlvbmFs
PVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9U1BF
RUNIX1NZTlRIRVNJUwogV2ViR0xDb250ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0b3Jh
Z2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggMzAx
NzEwMDQ0ZmYxM2ExNGMwMjI4ZGEzODkwMmQzZTdkMzM3N2MxMi4uYmEyMzRhNDNjMzIxNjM1NGUw
YTM1NGM4ZGJjMTE3YTU0ZDFlMTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCkBAIC00NCw2ICs0NCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBjb25k
aXRpb25hbD1TRVJWSUNFX1dPUktFUgogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBjb25kaXRp
b25hbD1TRVJWSUNFX1dPUktFUgogU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJD
RQogU291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK1NwZWVjaFJlY29n
bml0aW9uIGNvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKIFRleHRUcmFjayBjb25kaXRpb25h
bD1WSURFTwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApp
bmRleCA1YjA5MzJhY2JiYjEyMjcwYmRmYTI2ODlkN2MyMDc3OTQ4MTllNjc5Li4zZjY5YWEwZmQy
NzNkYmJjODM1ZGVmZjYxMjkyY2Y4NmFmMzUxZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEx
Nyw2ICsxMTcsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKQEAgLTI0OCw2ICsyNDksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFn
ZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgICwgbV93ZWJHTFN0YXRlVHJh
Y2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICNlbmRp
ZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisgICAgLCBtX3NwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbikpCisjZW5kaWYKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICAs
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNo
U3ludGhlc2lzQ2xpZW50KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1YWJiMzUwYzZiYjkx
YjRlOGYwYjk1Mjk5ZGFhNDRiODg4YmIxYWQ1Li5kMDgwYWViMGMxOTJkYTA0ODAzMzFiZWE1MWJm
ZTcwZDJmNGNlNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTM2LDYgKzEzNiw3IEBAIGNsYXNzIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjsKIGNs
YXNzIFNldHRpbmdzOwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb247CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9y
YWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpAQCAtNzcwLDYg
Kzc3MSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdMU3RhdGVUcmFj
a2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uZ2V0KCk7IH0KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNoU3ludGhlc2lzQ2xpZW50KiBzcGVlY2hT
eW50aGVzaXNDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudC5n
ZXQoKTsgfQogI2VuZGlmCkBAIC05MDUsNiArOTEwLDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiBtX3dlYkdMU3RhdGVUcmFja2VyOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2
YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmU4ZWI4MDc2ODk5MzlkNTRhZGJmMGY0
NGIzMmZkOGMxNDU5ZWZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3Mg
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3Mg
V2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CiBj
bGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiAKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uIHsK
QEAgLTExMiw2ICsxMTMsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gd2ViR0xTdGF0ZVRyYWNrZXI7CiAjZW5kaWYK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKyNl
bmRpZgogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hTeW50aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4NjhkMjA2ZjBkZTE2ZjhjMmZmZDllNjBkNGVjYjAyMWI2ODY4NmYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTAs
MCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVj
b2duaXRpb25FcnJvcjsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2du
aXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dG9wQ2FwdHVyaW5nU3BlZWNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVy
aW5nU291bmQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdBdWRpbygp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZE5vTWF0Y2goKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2ZDRlMGQ4Y2QyNjQzNzU5YjQ1MjM4ZjNjYmZiN2QyNTYxOGNjNGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2du
aXRpb25DbGllbnQqLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBp
bnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KikgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4
MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uNTg1NmI2ZjgzMTRjYTY4ZjJkNDNlYTNlYWJhYjBh
Y2I1ZDI2ZTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NDgsNiArNjQ4LDcgQEAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5jcHAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGJhZjdmMDVkYjJiMDE2ODcyMDc4YTkwNDZjMWMzZTEwYmFkNzJhODguLmUwMGU4YmVjNTJjZmZl
MTI1YWYyZWE5ZGM5MmEwODk4NDk2NzE2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtOTg5MSw2ICs5ODkxLDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpt
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRs
ZXI8CiAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNB
c0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklU
SU9OKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RvcCgpCit7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkKK3sKK30KKworI2VuZGlmCisKICNpZiBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3BlZWNoU3lu
dGhlc2l6ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyYmZk
Mjk2NzA1ZjlhY2U2ODhhOTU3ZDNhMzA1NWM5ZjQwZTdkY2QzLi4xODQ5NzU1ZTgwZDNmOTFjMWE5
YmRmMjhlZWQwZGNhNjBkOWU2MGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5KYXZhU2NyaXB0
UGFyYW1ldGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0R3JhbnVsYXJpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg+CkBAIC0xNjg2LDYgKzE2ODcsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3Rp
bmcoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG1h
cmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICB2b2lk
IHNwZWVjaFJlY29nbml0aW9uU3RhcnQoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0RGF0YSYpOworICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25TdG9wKCk7CisgICAgdm9p
ZCBzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiYmKT4mJik7CiAgICAg
dm9pZCBzcGVlY2hTeW50aGVzaXNTcGVhayhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBm
bG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9uaWNUaW1lIHN0YXJ0
VGltZSwgY29uc3QgU3RyaW5nJiB2b2ljZVVSSSwgY29uc3QgU3RyaW5nJiB2b2ljZU5hbWUsIGNv
bnN0IFN0cmluZyYgdm9pY2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0Vm9p
Y2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNDIxNDVmMmM1YzA0YjMzOGFi
MDQxZmIwNmQ2OTY4NmMyZjU3OTE1Mi4uNGE5YzJkZDgwYjIwYjAwYTQ4ZTA3NjIyYTRhNzZkMDc2
ZTc1Y2JmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtNTQ5LDYgKzU0OSwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogCiAgICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNp
emVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgVVJMIHVybCkgLT4gKFN0cmluZyByZXN1
bHQpIFN5bmNocm9ub3VzCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNw
ZWVjaFJlY29nbml0aW9uU3RhcnQoc3RydWN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdERhdGEgcmVzdWx0KQorICAgIFNwZWVjaFJlY29nbml0aW9uU3RvcCgpCisgICAgU3BlZWNo
UmVjb2duaXRpb25BYm9ydCgpCisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lT
KQogICAgIFNwZWVjaFN5bnRoZXNpc1ZvaWNlTGlzdCgpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJT
cGVlY2hTeW50aGVzaXNWb2ljZT4gdm9pY2VMaXN0KSBTeW5jaHJvbm91cwogICAgIFNwZWVjaFN5
bnRoZXNpc1NwZWFrKFN0cmluZyB0ZXh0LCBTdHJpbmcgbGFuZywgZmxvYXQgdm9sdW1lLCBmbG9h
dCByYXRlLCBmbG9hdCBwaXRjaCwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUsIFN0cmluZyB2b2lj
ZVVSSSwgU3RyaW5nIHZvaWNlTmFtZSwgU3RyaW5nIHZvaWNlTGFuZywgYm9vbCBsb2NhbFNlcnZp
Y2UsIGJvb2wgZGVmYXVsdFZvaWNlKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGVkYTE1YTM1ZmRiYTVjNzIyNDJj
MTM4NThmNzM4YzRhYzZmOGEwZS4uNzZlNTI5MTVmZGFjNjM2MTMyYmI2N2E4ZDdiZWIzODY0MjVk
YzE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzU2LDYgKzEzNTYsNyBAQAogCQk5MzNFODM1NTIzQTA3QzA2MDBERUYyODkgLyog
V2ViSURCU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzNFODM1MzIzQTA3QkY4MDBERUYyODkgLyogV2ViSURCU2VydmVyLmggKi87IH07CiAJ
CTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTkyM0ExQURG
NTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4MzVCMjNB
MUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAw
REVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTkzNDk1
MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MDcyMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLzsgfTsK
IAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1
QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVE
RiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNX
U2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlv
bi5oICovOyB9OwpAQCAtNDQxMiw2ICs0NDEzLDggQEAKIAkJOTMzRTgzNTcyM0ExQTg3MjAwREVG
Mjg5IC8qIFdlYklEQlNlcnZlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJOTMzRTgzNTkyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3
MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MDczMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTUxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NTMyLDcgKzQ1MzUsNyBAQAogCQk5QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0
NzkwOEMyNTMxNEQ4MzAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUI0NzkwOEUyNTMxNTFDQzAwRUMxMUFCIC8qIEpTSVBDQmluZGlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0lQQ0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOUI0NzkwOTAyNTMxNTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2Ny
aXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdl
QXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBwYXRoID0gTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRp
b25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUI0NzkwOTAyNTMxNTYzMjAw
RUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBQzIzNjJBNkY2MDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4
dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUI1NDk5QUUyMzYyQTdBNzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Db25maWd1
cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTQ5OUIwMjM2MkE3
RUMwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRXhjbHVzaW9uUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODkyMCw2ICs4OTIzLDggQEAKIAkJCQk0NjcxRkYxRDIzMjE3RUZG
MDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLywKIAkJCQlEM0I5NDg0NDEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCAqLywKIAkJCQlEM0I5NDg0
NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8sCisJCQkJOTM0OTUw
NzMyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAg
Ki8sCisJCQkJOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovLAogCQkJCUMxNDkzODAzMjIzNDFERjcwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwICovLAogCQkJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLywKIAkJCQlDMTQ5MzgwQTIyMzg1M0JFMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKQEAgLTExNDgzLDYgKzExNDg4
LDcgQEAKIAkJCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1v
dXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUFGMjI1
NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzNDk1MDc0MjUzOEIyQ0EwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQw
MDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzdlODdlYjQ4YWNmODdi
ZWRhZGY1NTg0NTA1MWVhMjBiNzFhNzJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5jcHAKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dCogY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVz
dCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3JlYXRlKGNsaWVudCwgbGFu
ZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcyk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYXBwZW5kKHJlcXVlc3QucHRyKCkpOworICAgIHByb2Nlc3NQZW5kaW5n
UmVxdWVzdCgpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVt
b3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdl
KG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlz
RW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZp
cnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnQoKSA9PSBjbGllbnQpIHsKKyAgICAg
ICAgICAgIGNsaWVudC0+ZGlkRW5kKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IoKSk7
CisgICAgICAgICAgICAvLyBPbmUgY2xpZW50IHNob3VsZCBoYXZlIG9uZSByZXF1ZXN0IGF0IGEg
dGltZS4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfQorfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCogY2xpZW50KQoreworICAgIGlmIChjdXJyZW50Q2xpZW50KCkgPT0gY2xpZW50KSB7
CisgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNwZWVjaFJlY29n
bml0aW9uU3RvcCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICByZW1vdmVQ
ZW5kaW5nUmVxdWVzdEZyb21DbGllbnQoY2xpZW50KTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
KiBjbGllbnQpCit7CisgICAgaWYgKGN1cnJlbnRDbGllbnQoKSA9PSBjbGllbnQpIHsKKyAgICAg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoUmVjb2duaXRpb25B
Ym9ydCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlbW92ZVBlbmRpbmdSZXF1
ZXN0RnJvbUNsaWVudChjbGllbnQpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cHJvY2Vzc1BlbmRpbmdSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9jdXJyZW50UmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFtX3BlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkgJiYgIWN1cnJlbnRDbGllbnQoKSkKKyAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLnRha2VGaXJzdCgpOworCisgICAgaWYgKGN1cnJlbnRDbGllbnQo
KSkKKyAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoUmVj
b2duaXRpb25TdGFydChtX2N1cnJlbnRSZXF1ZXN0LT5kYXRhKCkpKTsKK30KKwordm9pZCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1
ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogY2xpZW50ID0gY3VycmVudENs
aWVudCgpKQorICAgICAgICBjbGllbnQtPmRpZEVuZChlcnJvcik7CisKKyAgICBtX2N1cnJlbnRS
ZXF1ZXN0ID0gbnVsbHB0cjsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b246OnByb2dyZXNzRGlkVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRl
IHJlY2VpdmVzIHVwZGF0ZSB3aGVuIG5vdCBwcm9jZXNzaW5nIHJlcXVlc3RzIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgIGlm
ICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciB8fCB0
eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFbmQpIHsKKyAgICAg
ICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCh1cGRhdGUuZXJyb3IoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvKiBjbGllbnQgPSBjdXJyZW50Q2xpZW50KCk7CisgICAgaWYg
KCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTdGFydCkKKyAgICAgICAgY2xpZW50LT5kaWRTdGFy
dCgpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBl
OjpBdWRpb1N0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsK
KyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U291
bmRTdGFydCkKKyAgICAgICAgY2xpZW50LT5kaWRTdGFydENhcHR1cmluZ1NvdW5kKCk7CisgICAg
aWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaFN0
YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKCk7CisgICAgaWYg
KHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaEVuZCkK
KyAgICAgICAgY2xpZW50LT5kaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCk7CisgICAgaWYgKHR5cGUg
PT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kRW5kKQorICAgICAg
ICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpOworICAgIGlmICh0eXBlID09IFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpBdWRpb0VuZCkKKyAgICAgICAgY2xpZW50
LT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0KQorICAgICAgICBjbGllbnQtPmRpZFJlY2Vp
dmVSZXN1bHQodXBkYXRlLnJlc3VsdHMoKSk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6Ok5vTWF0Y2gpCisgICAgICAgIGNsaWVudC0+ZGlkRmlu
ZE5vTWF0Y2goKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVudCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRS
ZXF1ZXN0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBtX2N1cnJlbnRS
ZXF1ZXN0LT5jbGllbnQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDlmMDUxMTgwYThhZTc2YzJhNGM0OTM1NmIwMjg5ODI4YWFkZDM0NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8
V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oV2ViUGFnZSYpOwor
CisgICAgdm9pZCBzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0
IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50
NjRfdCBtYXhBbHRlcm5hdGl2ZXMpIGZpbmFsOworICAgIHZvaWQgc3RvcChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCopIGZpbmFsOworICAgIHZvaWQgYWJvcnQoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQqKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2Nl
c3NQZW5kaW5nUmVxdWVzdCgpOworICAgIHZvaWQgY29tcGxldGVDdXJyZW50UmVxdWVzdChjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgdm9pZCByZW1vdmVQZW5k
aW5nUmVxdWVzdEZyb21DbGllbnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqKTsK
KyAgICB2b2lkIHByb2dyZXNzRGlkVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUmKTsKKworICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50KiBjdXJyZW50Q2xpZW50KCk7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgRGVxdWU8
UmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVl
c3RzOworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3Vy
cmVudFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjNhODE1
MDhkNDE4NDZlYTJlOWFiZTlhNjM5YWE3YjFjNDg5NjNkMC4uNGFkYjliNTc0Y2U0OTUyODM5MjU0
YTg4YTNmZTc0MjJkYTc4M2E4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgog
I2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyNywxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisgICAg
cGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVVuaXF1
ZTxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+KCp0aGlzKTsKKyNlbmRpZgorICAgIAog
I2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNwZWVj
aFN5bnRoZXNpc0NsaWVudCA9IG1ha2VVbmlxdWU8V2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Pigq
dGhpcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IDE3NTdhNmE5YjFi
MTI1MzAxMzVhYjhmNzdiMWVhNTlmNmIwMmVkZTguLjViM2U3MDBlMDk1OGUyZmJkNTY5MTc4MDQy
NzFkZWRjOTRmYzVlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KQEAgLTMzLDcg
KzM0LDYgQEAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAog
bmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcigpCg==
</data>
<flag name="commit-queue"
          id="427768"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411532</attachid>
            <date>2020-10-15 21:25:29 -0700</date>
            <delta_ts>2020-10-19 00:57:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201015212527.patch</filename>
            <type>text/plain</type>
            <size>151032</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM3NmY2NjMzZWI1MzBiNGQ2ODRkZjIw
M2NlNjY1YmQxYmE5MTc4Y2MuLjc2MzYxYmMzODk1MDk5MmUzZTI0ZGNmYzQzMWE4MzFkZTEzOTlh
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisK
IDIwMjAtMTAtMTUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWFrT2JqQ1B0ci5oIGlzIG5vdCBzYWZlIHRvIGluY2x1ZGUgaW4gQysrIHNvdXJjZSBmaWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDM3NzNkY2I1NGE0Nzg4OWFiYzYyZTE0NDg2N2Y4MDdiNTI0MjU5YjEu
LjQzZWEwNDkxZGUxMDM2YjQ0YTI1OTYzYzU3NWNhY2NmMTRlYzMwZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMjUgQEAKKzIwMjAtMTAtMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hSZWNv
Z25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1Nw
ZWVjaFJlY29nbml0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbjo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnN1cHBsZW1lbnROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpmcm9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzcGVlY2hSZWNvZ25pdGlv
bik6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24u
aDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRp
ZFN0YXJ0Q2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbyk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmluZE5vTWF0Y2gpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZVJlc3VsdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bGFuZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TGFuZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6Y29udGludW91cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6c2V0Q29udGludW91cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6aW50ZXJpbVJlc3VsdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246OnNldEludGVyaW1SZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjptYXhBbHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OnNldE1heEFsdGVybmF0aXZlcyk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6U3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3I6OmlzTnVsbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmV2ZW50SW50ZXJm
YWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6cmVzdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnJlc3VsdHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0OjpjbGllbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGE6OmRlY29kZSk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjppdGVt
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0V2
ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorCiAyMDIw
LTEwLTE1ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBMZXNz
ZW4gdGhlIHJlbGlhbmNlIG9uIFZQQVRIIGluIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAyN2JkMjk4MDdiNTRkZmVhNTVhZGNhMjc1NmFhODYzOTA5N2Y1ZTRlLi5iZjIz
MzY1YzY1YzI2OTM3ZjNjYmRlNTk5Yzg3NzE3NjI5Nzc3NjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDIwLTEwLTE1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzcGVlY2hSZWNvZ25pdGlvblN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzcGVlY2hSZWNvZ25pdGlvblN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uQWJv
cnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJvY2Vzc1BlbmRpbmdSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjb21wbGV0
ZUN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uOjpwcm9ncmVzc0RpZFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorCiAyMDIw
LTEwLTE1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgdjI6
IFdlYktpdDo6WFBDU2VydmljZUV2ZW50SGFuZGxlciBibG9jayBzaG91bGQgY2FsbCBleGl0KCkg
b24gdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXgg
Y2RkOTliN2Y5NDI4ZGUxMWE0ZDFmODk2NzQxMDY1MzhlNjQ1NjQ1ZS4uMzExN2VmNGQzNjI2YWU1
NGIwYWIyNjQ1YjI5NzQ2Yjc5YWJiNDkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtNDI1LDYgKzQyNSwxMCBAQAogI2RlZmluZSBFTkFCTEVfUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9SRUNPR05J
VElPTikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVfU1BFRUNIX1JF
Q09HTklUSU9OIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVT
SVMpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5U
SEVTSVMgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDEwMjhhMzllZDEwMDE1YTI5
Yzk4ZGE0MDMyNjZhNGQ2ODljNjNlOTEuLjY2NWIzOWMyYzRmYWQ4ZTVhMWQzZDM3N2E1ZDE1ZjY1
Y2QzMTExZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MzYsNiArNDM2LDE1IEBAIHNldChX
ZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5pZGwKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNr
QXZhaWxhYmlsaXR5Q2FsbGJhY2suaWRsCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3cr
U3BlZWNoUmVjb2duaXRpb24uaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKKyAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCisgICAgTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCisKICAgICBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3cr
U3BlZWNoU3ludGhlc2lzLmlkbAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5p
ZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDg2YTA3NzQx
ZjM4NDQ3OTIwYWEwZTkyNzYyYmQ0ZTBlNmU2MmRkNzAuLmJmMTU3ZTliNzBlOWYzMzc4ZTk5OTM1
NWU1M2VjYTkzYWI5YmM0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtMjc5LDYgKzI3OSwxNCBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvcitTdG9yYWdlUXVvdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL0hUTUxNZWRpYUVsZW1lbnQrUmVtb3RlUGxheWJhY2su
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNr
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFj
a0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCiskKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbAorJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDdm
OTM3MWE0MGYxODEwZWE1ODBiYTRhOGU3OTc2OWQwZjY4N2RjOWIuLmU0MTY5ODAxNTdkOTA5ZWNi
NzA3NzI4OGU1NDE4NzYzMzllZjhmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01NTAsNiArNTUwLDggQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5kb3crU2VsZWN0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3crU2VsZWN0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvdytT
cGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93K1Zpc3VhbFZpZXdwb3J0
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01X
aW5kb3crVmlzdWFsVmlld3BvcnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNET01XaW5kb3crV2ViRGF0YWJhc2UuY3BwCkBAIC01NjQsNiArNTY2LDgg
QEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3dRdW90YS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRE9NV2luZG93UXVvdGEuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01XaW5k
b3dXZWJEYXRhYmFzZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTVdpbmRvd1dlYkdQVS5jcHAKQEAgLTIxMDgsNiArMjExMiwyMCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVm
ZmVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291
cmNlQnVmZmVyTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbi5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2OWYwZWJiZjk5YjZjMGZkZjMzZTg3NmQwOTE2ZTA3
NTkyMTViMTJhLi44OTUzY2Y5MTg1MTI2MzdlODY0MWNiMGUyYjZhMmMyOWRmNzdiNzNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwNiw2ICszMDYsMTQgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzVm9pY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytT
cGVlY2hSZWNvZ25pdGlvbi5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAwYWRlN2Q4YzhkNGIyZjJkOThkNmQzOTBlOTM4YWIzM2Vi
NzQ1ODE3Li5mNjY0OGQzMjFhYTk0ODlhYWRhNzE1NGRkMzlkODYyODBkMDRiNWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTExMCw2ICsxMTAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKICAg
ICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKIAorICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaAorCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3Bl
ZWNoUmVjb2duaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2lu
ZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2E0M2E2NGI1YzFiNjcxMzQz
NjljNzUyN2E5ZmFmMDk0NGRhZWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElP
TiwKKyAgICBJbXBsZW1lbnRlZEJ5PURPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uCitdIHBhcnRp
YWwgaW50ZXJmYWNlIERPTVdpbmRvdyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJl
Y29nbml0aW9uIHNwZWVjaFJlY29nbml0aW9uOworICAgIFtJbXBsZW1lbnRlZEFzPXNwZWVjaFJl
Y29nbml0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb24gd2Via2l0U3Bl
ZWNoUmVjb2duaXRpb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEz
YmMyZWJkNWU5NWJmOTM5ZjhhNzA0NzU4ODg2ZTM5YjgxNWE1ZDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlv
bi5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlv
bjo6RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oRE9NV2luZG93KiB3aW5kb3cpCisgICAgOiBE
T01XaW5kb3dQcm9wZXJ0eSh3aW5kb3cpCit7Cit9CisKK0RPTVdpbmRvd1NwZWVjaFJlY29nbml0
aW9uOjp+RE9NV2luZG93U3BlZWNoUmVjb2duaXRpb24oKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNo
YXIqIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
cmV0dXJuICJET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiI7Cit9CisKK0RPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbjo6ZnJvbShET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbiogc3VwcGxlbWVudCA9
IHN0YXRpY19jYXN0PERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uKj4oU3VwcGxlbWVudDxET01X
aW5kb3c+Ojpmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSkpOworICAgIGlmICghc3VwcGxl
bWVudCkgeworICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBtYWtlVW5pcXVlPERPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uPih3aW5kb3cpOworICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3Vw
cGxlbWVudC5nZXQoKTsKKyAgICAgICAgcHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUo
KSwgV1RGTW92ZShuZXdTdXBwbGVtZW50KSk7CisgICAgfQorICAgIHJldHVybiBzdXBwbGVtZW50
OworfQorCitTcGVlY2hSZWNvZ25pdGlvbiogRE9NV2luZG93U3BlZWNoUmVjb2duaXRpb246OnNw
ZWVjaFJlY29nbml0aW9uKERPTVdpbmRvdyYgd2luZG93KQoreworICAgIHJldHVybiBET01XaW5k
b3dTcGVlY2hSZWNvZ25pdGlvbjo6ZnJvbSgmd2luZG93KS0+c3BlZWNoUmVjb2duaXRpb24oKTsK
K30KKworU3BlZWNoUmVjb2duaXRpb24qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uOjpzcGVl
Y2hSZWNvZ25pdGlvbigpCit7CisgICAgYXV0byogd2luZG93ID0gdGhpcy0+d2luZG93KCk7Cisg
ICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCF3aW5k
b3ctPmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogcGFnZSA9IGRv
Y3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChwYWdlLT5pc0Nsb3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBpZiAoIW1fc3BlZWNoUmVjb2duaXRpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRp
b24gPSBTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKCpkb2N1bWVudCk7CisKKyAgICByZXR1cm4g
bV9zcGVlY2hSZWNvZ25pdGlvbi5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5ZGJiNzBlMWYwODhhYThkMGE1MWQ1ODJhMTU3ZDMyNzBkMGIzZmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dT
cGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJET01X
aW5kb3dQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisjaW5jbHVk
ZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01X
aW5kb3c7CisKK2NsYXNzIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFN1cHBs
ZW1lbnQ8RE9NV2luZG93PiwgcHVibGljIERPTVdpbmRvd1Byb3BlcnR5IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBET01XaW5kb3dTcGVlY2hS
ZWNvZ25pdGlvbihET01XaW5kb3cqKTsKKyAgICB2aXJ0dWFsIH5ET01XaW5kb3dTcGVlY2hSZWNv
Z25pdGlvbigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
KiBzcGVlY2hSZWNvZ25pdGlvbihET01XaW5kb3cmKTsKKyAgICBzdGF0aWMgRE9NV2luZG93U3Bl
ZWNoUmVjb2duaXRpb24qIGZyb20oRE9NV2luZG93Kik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNo
UmVjb2duaXRpb24qIHNwZWVjaFJlY29nbml0aW9uKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+IG1fc3Bl
ZWNoUmVjb2duaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZjRlMzIwZWNh
YzI3MDRjOGYyNzkxYjEwZTNkYjJiNTJlMTg1OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAgLTAsMCArMSwx
ODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOworCitSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNw
ZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1
bWVudC5wYWdlKCkpIHsKKyAgICAgICAgYXV0byogY2xpZW50ID0gcGFnZS0+c3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uKCk7CisgICAgICAgIGlmIChjbGllbnQpCisgICAgICAgICAgICBtX3Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKCpjbGllbnQpOworICAgIH0K
K30KKworU3BlZWNoUmVjb2duaXRpb246On5TcGVlY2hSZWNvZ25pdGlvbigpCit7CisgICAgaWYg
KG1fc3RhdGUgPT0gU3RhdGU6OlN0YXJ0aW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OlJ1bm5pbmcp
CisgICAgICAgIGFib3J0KCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0
aW9uOjpzdGFydCgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OklkbGUpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJl
aW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9zcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLT5zdGFydCh0aGlzLCBtX2xhbmcsIG1fY29udGludW91cywgbV9pbnRlcmltUmVzdWx0cywg
bV9tYXhBbHRlcm5hdGl2ZXMpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKKwor
ICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3AoKQorewor
ICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpTdGFydGluZyAmJiBtX3N0YXRlICE9IFN0YXRlOjpS
dW5uaW5nKSB7CisgICAgICAgIExPR19FUlJPUigiUmVjb2duaXRpb24gaXMgYmVpbmcgc3RvcHBl
ZCBvciBhbHJlYWR5IHN0b3BwZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAobV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLT5zdG9wKHRoaXMpOworCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdG9w
cGluZzsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnQoKQoreworICAgIGlmICht
X3N0YXRlICE9IFN0YXRlOjpTdGFydGluZyAmJiBtX3N0YXRlICE9IFN0YXRlOjpSdW5uaW5nKSB7
CisgICAgICAgIExPR19FUlJPUigiUmVjb2duaXRpb24gaXMgYmVpbmcgc3RvcHBlZCBvciBhbHJl
YWR5IHN0b3BwZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9zcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLT5hYm9ydCh0aGlzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWJvcnRpbmc7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0KCkKK3sKKyAgICBtX3N0YXRlID0g
U3RhdGU6OlJ1bm5pbmc7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdB
dWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5h
dWRpb3N0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1Nv
dW5kKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNv
dW5kc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaHN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxl
OjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU3Bl
ZWNoKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNw
ZWVjaGVuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNvdW5k
ZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQor
eworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYXVkaW9lbmRF
dmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKCkKK3sKKyAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubm9t
YXRjaEV2ZW50LCAwLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRp
ZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OklkbGU7CisgICAgbV9maW5hbFJlc3VsdHMuY2xlYXIoKTsKKworICAgIGlmICgh
ZXJyb3IuaXNOdWxsKCkpIAorICAgICAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCAqZXJyb3IudHlwZSwg
ZXJyb3IubWVzc2FnZSkpOworICAgIGVsc2UKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJl
Y2VpdmVSZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mIHJl
c3VsdERhdGFzKQoreworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBh
bGxSZXN1bHRzOworICAgIGFsbFJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KG1fZmluYWxSZXN1bHRz
LnNpemUoKSArIHJlc3VsdERhdGFzLnNpemUoKSk7CisgICAgYWxsUmVzdWx0cy5hcHBlbmRWZWN0
b3IobV9maW5hbFJlc3VsdHMpOworCisgICAgdWludDY0X3Qgbm9uRmluYWxSZXN1bHRJbmRleCA9
IGFsbFJlc3VsdHMuc2l6ZSgpOworICAgIGZvciAoYXV0byByZXN1bHREYXRhIDogcmVzdWx0RGF0
YXMpIHsKKyAgICAgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4g
YWx0ZXJuYXRpdmVzOworICAgICAgICBmb3IgKGF1dG8gYWx0ZXJuYXRpdmVEYXRhIDogcmVzdWx0
RGF0YS5hbHRlcm5hdGl2ZXMpCisgICAgICAgICAgICBhbHRlcm5hdGl2ZXMuYXBwZW5kKFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlw
dCwgYWx0ZXJuYXRpdmVEYXRhLmNvbmZpZGVuY2UpKTsKKyAgICAgICAgYXV0byBuZXdSZXN1bHQg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwg
cmVzdWx0RGF0YS5pc0ZpbmFsKTsKKyAgICAgICAgaWYgKHJlc3VsdERhdGEuaXNGaW5hbCkgewor
ICAgICAgICAgICAgbV9maW5hbFJlc3VsdHMuYXBwZW5kKG5ld1Jlc3VsdCk7CisgICAgICAgICAg
ICArK25vbkZpbmFsUmVzdWx0SW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgYWxsUmVzdWx0cy5h
cHBlbmQoV1RGTW92ZShuZXdSZXN1bHQpKTsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdExpc3Qg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShXVEZNb3ZlKGFsbFJlc3VsdHMp
KTsKKyAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkucmVzdWx0RXZlbnQsIG5vbkZpbmFsUmVzdWx0SW5kZXgsIG1ha2VSZWZQdHIocmVz
dWx0TGlzdC5nZXQoKSkpKTsKK30KKworY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRp
b24iOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzMxMzcwMmM5YjUwMTU2YjBjYTczNzM2ZjE5ZmVjY2NlZTVkOTYzYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAg
LTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJs
aWMgU3BlZWNoUmVjb2duaXRpb25DbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEgIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9u
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9j
dW1lbnQmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYg
bGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQorICAgIHZvaWQgc2V0TGFuZyhjb25zdCBT
dHJpbmcmIGxhbmcpIHsgbV9sYW5nID0gbGFuZzsgfQorCisgICAgYm9vbCBjb250aW51b3VzKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgdm9pZCBzZXRDb250aW51b3VzKGJv
b2wgY29udGludW91cykgeyBtX2NvbnRpbnVvdXMgPSBjb250aW51b3VzOyB9CisKKyAgICBib29s
IGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmltUmVzdWx0czsgfQorICAg
IHZvaWQgc2V0SW50ZXJpbVJlc3VsdHMoYm9vbCBpbnRlcmltUmVzdWx0cykgeyBtX2ludGVyaW1S
ZXN1bHRzID0gaW50ZXJpbVJlc3VsdHM7IH0KKworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZl
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVzOyB9CisgICAgdm9pZCBzZXRNYXhB
bHRlcm5hdGl2ZXModW5zaWduZWQgbWF4QWx0ZXJuYXRpdmVzKSB7IG1fbWF4QWx0ZXJuYXRpdmVz
ID0gbWF4QWx0ZXJuYXRpdmVzOyB9CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydCgpOwor
ICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgYWJvcnQoKTsKKworICAgIC8vIFRPRE86IG1ha2Ug
c3VyZSBldmVudCBvcmRlcmluZyBpcyBjb3JyZWN0LgorICAgIHZvaWQgZGlkU3RhcnQoKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFN0YXJ0Q2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0Q2FwdHVyaW5n
U3BlZWNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU3BlZWNoKCkgZmluYWw7
CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nU291bmQoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0
b3BDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQgZGlkRmluZE5vTWF0Y2goKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEVuZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgZmluYWw7
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+JikgZmluYWw7CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0
ZSB7CisgICAgICAgIFN0YXJ0aW5nLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdG9wcGlu
ZywKKyAgICAgICAgQWJvcnRpbmcsCisgICAgICAgIElkbGUsCisgICAgfTsKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbihEb2N1bWVudCYpOworCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0OworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9
CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNp
ZGUgZGVmYXVsdCBsYW5ndWFnZS4KKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250
aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9Owor
ICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKwor
ICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzUyZWJjZWVlOTQyMTJlMmE0YWM2NGViOGI5MjdkN2RhOGI2ZGNiOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAg
ICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10g
aW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uIHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNv
bnN0cnVjdG9yKCk7CisKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmli
dXRlIGJvb2xlYW4gY29udGludW91czsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbnRlcmltUmVz
dWx0czsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBbHRlcm5hdGl2ZXM7CisKKyAg
ICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzdGFydCgpOworICAgIHVuZGVmaW5lZCBz
dG9wKCk7CisgICAgdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291bmRzdGFy
dDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvZW5kOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzky
N2JjMTkyYjM5YjdhZjA0NmZkMmZhMjlmNGFhZWE5NTM3ODJkMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSh0cmFuc2NyaXB0LCBjb25maWRlbmNl
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUoY29uc3QgU3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSkK
KyAgICA6IG1fdHJhbnNjcmlwdCh0cmFuc2NyaXB0KQorICAgICwgbV9jb25maWRlbmNlKGNvbmZp
ZGVuY2UpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E2ZTExZjlkYjc1MTA4ZDIyOGQyYmEyNDYyOGVm
NzQzNGFmYjI1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaApAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmU+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2Up
OworCisgICAgU3RyaW5nIHRyYW5zY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7
IH0KKyAgICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsg
fQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUo
Y29uc3QgU3RyaW5nJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJp
bmcgbV90cmFuc2NyaXB0OworICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTM2ZTBjZjMyZjAzMDNhMWVhYTQzZDQ3OTZkZDk4MzdiZWM5ZDI2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0cmFuc2NyaXB0
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25maWRlbmNlOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZDg1MjI1Njk4OGI4NmRmODMxOTA3NjZjZjgzODlkM2RlZGM3YTZjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGUgeworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQsCisgICAgQXVk
aW9DYXB0dXJlLAorICAgIE5ldHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90
QWxsb3dlZCwKKyAgICBCYWRHcmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCit9Owor
CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU+IHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisKKyAgICBib29s
IGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICF0eXBlLmhhc1ZhbHVlKCk7IH0KKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVjaFJlY29nbml0aW9u
RXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnR5cGUpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubWVzc2FnZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAgICAgICAgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3VwcG9ydGVkCisgICAg
PjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwMmI5YzE0ZjVjNTlmNTExOTEwMTE1OTM3NmQ0ZjJhYTFhNDY0Y2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVkYTkwYWRhN2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorXSBlbnVtIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAgICAiYWJvcnRlZCIsCisgICAgImF1ZGlv
LWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAibm90LWFsbG93ZWQiLAorICAgICJzZXJ2
aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1tYXIiLAorICAgICJsYW5ndWFnZS1ub3Qt
c3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMx
ODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUwNjVmYmViYTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
Y3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgaW5pdCwg
aXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KHR5
cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0
LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQuZXJyb3IpCisgICAgLCBtX21lc3NhZ2Uo
aW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorICAgIDogRXZl
bnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQor
ICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQoreworfQorCitF
dmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW50ZXJm
YWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWZmZjFjZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1
YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisj
aW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDog
RXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7Cisg
ICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0
JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CisgICAgU3RyaW5nIG1l
c3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJ
c1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3Ry
aW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAg
RXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1fZXJyb3I7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsK
KworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2MjY1ZDNjOTdhNGQ0YzE5MGU3M2Q4NTc4YmUwMjlk
NDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEV4cG9zZWQ9
V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgOiBFdmVudCB7
CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudEluaXQgZXZlbnRJbml0RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1lc3NhZ2UgPSAiIjsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEyMTdlNzE1MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0
LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVj
aFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIHJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3Vs
dHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlz
VHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVz
dWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhpbml0LnJlc3VsdHMp
Cit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVz
dWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkK
K3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRl
cmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJm
YWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2FmYTYyNDY3MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVu
dCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsK
K3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIHVpbnQ2NF90
IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElz
VHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICB1aW50NjRfdCByZXN1bHRJbmRleCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdHMuZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBj
b25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgp
IGNvbnN0IG92ZXJyaWRlOworCisgICAgdWludDY0X3QgbV9yZXN1bHRJbmRleDsKKyAgICBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDhj
M2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJkMzQzMTFjMThjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hf
UkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNw
ZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CisKK2RpY3Rpb25hcnkg
U3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHVuc2lnbmVkIGxv
bmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODUwMzcxMGQ0N2NlNGIwZjlhMzQzMGQzNmI4ODkyNmEzNzFkYjQ5NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5o
IgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGU6OnVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSB0
eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIHsgdHlw
ZSB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGU6OmVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3ImIGVy
cm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgdXBkYXRlIHsgU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkVycm9yIH07CisgICAgdXBkYXRlLm1f
ZXJyb3IgPSBlcnJvcjsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnJlc3VsdChj
b25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYgcmVzdWx0cykKK3sKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIHVwZGF0ZSB7IFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpSZXN1bHQgfTsKKyAgICB1cGRhdGUubV9yZXN1bHRzID0g
cmVzdWx0czsKKyAgICByZXR1cm4gdXBkYXRlOworfQorCitTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlIHR5cGUpCisgICAgOiBtX3R5cGUodHlwZSkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40M2M5YjQ4Y2E3MDBlOTRhYzMyZTIyYzVmN2VlYzVmMzM5NDBhZDIz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
VHlwZSB7CisgICAgU3RhcnQsCisgICAgQXVkaW9TdGFydCwKKyAgICBTb3VuZFN0YXJ0LAorICAg
IFNwZWVjaFN0YXJ0LAorICAgIFNwZWVjaEVuZCwKKyAgICBTb3VuZEVuZCwKKyAgICBBdWRpb0Vu
ZCwKKyAgICBSZXN1bHQsCisgICAgTm9NYXRjaCwKKyAgICBFcnJvciwKKyAgICBFbmQsCisgICAg
SW52YWxpZCwKK307CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgewor
cHVibGljOgorICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIHVwZGF0
ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSk7CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgZXJyb3IoY29uc3QgU3BlZWNoUmVjb2duaXRpb25F
cnJvciYpOworICAgIHN0YXRpYyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIHJlc3Vs
dChjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpOworCisgICAgU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3IoKSBjb25zdCB7IHJldHVy
biBtX2Vycm9yOyB9CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVz
dWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0czsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
PiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUp
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgbV90eXBlOworICAg
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgbV9lcnJvcjsKKyAgICBWZWN0b3I8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhPiBtX3Jlc3VsdHM7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdHlwZSA8PCBtX2Vycm9yIDw8IG1f
cmVzdWx0czsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gT3B0aW9uYWw8U3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZT4gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZSByZXN1bHQoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkludmFs
aWQpOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2Vy
cm9yKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm1fcmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZVR5cGUsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVU
eXBlOjpTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZVR5cGU6OkF1ZGlvU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZFN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTcGVlY2hFbmQsCisgICAg
ICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZEVu
ZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkF1ZGlvRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlVHlwZTo6UmVzdWx0LAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlVHlwZTo6Tm9NYXRjaCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkVycm9yLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6RW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6SW52YWxpZAorICAgID47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YTUzNzQ4ZjY2MjZhNzYxMzI1MGQ5N2M3MGVhNWZkYTQ1NWIxMDU3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNyZWF0ZShTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91
cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChjbGllbnQsIGxh
bmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRp
bnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykKKyAg
ICA6IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgLCBtX2RhdGEoU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0RGF0YSB7IGxhbmcsIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBt
YXhBbHRlcm5hdGl2ZXMgfSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZiZjYwZWUxNTc3Y2VjMWQ1MGRmN2VlZjYx
OGJkMjk1YjI3MzFjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+
CisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRh
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0
YSBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiwgY29uc3QgU3RyaW5n
JiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1h
eEFsdGVybmF0aXZlcyk7CisKKyAgICBXZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ2xpZW50PiBt
X2NsaWVudDsKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIG1fZGF0YTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjA3MDAzYWJmNjA4MmYzZmI4ZWRhYjhlMDZjZTQ0M2E2MjM3MGU5ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdERhdGEuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2xpZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLyplbnVtIFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdElkZW50aWZpZXJUeXBlIHsgfTsKKyB1c2luZyBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVu
dGlmaWVyVHlwZT47CisgYXV0byBpZGVudGlmaWVyID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyovCisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhIHsKKyAgICBTdHJpbmcgbGFuZzsKKyAgICBib29sIGNvbnRpbnVvdXMgeyBmYWxz
ZSB9OworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1h
eEFsdGVybmF0aXZlcyB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YT4gZGVjb2RlKERlY29kZXIm
KTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbGFuZyA8PCBjb250aW51b3VzIDw8IGludGVyaW1SZXN1bHRzIDw8IG1heEFsdGVybmF0
aXZlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdERhdGE+IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGE6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgcmVz
dWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGlu
dW91cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5pbnRlcmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNjN2Y0ZjAwOTYyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUoYWx0ZXJuYXRp
dmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4m
JiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0ZXJuYXRpdmVzKFdURk1v
dmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChpc0ZpbmFsKQoreworfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRlbSh1
aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9hbHRlcm5hdGl2
ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZkMWRkYzAyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBj
cmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBp
c0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0ZXJu
YXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNG
aW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIGl0ZW0odWludDY0X3Qg
aW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZl
Y3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7
CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiBtX2FsdGVy
bmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNlIH07Cit9OworCit9CisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRlM2E4MWU0NTJlMmJjNTUxMzZkYTg3
NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBp
c0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEyODhlMDYwYTFm
MzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCkBAIC0w
LDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVF
Q0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJhbnNjcmlwdDsKKyAgICBk
b3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGRlY29kZShEZWNvZGVy
Jik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YT4gU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJlc3VsdDsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbmZpZGVuY2UpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
c3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAgVmVjdG9yPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBpc0ZpbmFs
IHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGFsdGVy
bmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWx0ZXJuYXRp
dmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOWU3YTA2MDVmMWNkNTA5YjM2
Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCkBAIC0wLDAgKzEs
NjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworCitSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0odWludDY0X3QgaW5kZXgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlzdC5zaXplKCkpID8gbV9saXN0W2lu
ZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3Qu
YXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RGTW92ZShsaXN0KSkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4MjYwNjZmZWU5NjU0MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25z
dDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CisKK3ByaXZhdGU6
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkgPSBkZWZhdWx0OworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9saXN0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEwZTRiZDczMTFkYjgyOGIzZjIwZjlh
NDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDljODg3NTFlM2M2ODA2NDFkZDNkMGI0NjNh
NTg1Zjg1OWIwOWMyNzMuLmZkNWM0NDkxNDAxZDIzZDIxY2NjMGFmOTUzOThkM2U5NDk5NGJhMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIK
ICNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dsb2Jh
bE9iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBhZWYxYjYyMzIxMjVlMzY0OWI5MGY0M2RlMzg5NmE5ZDBjYWM3YWQ5Li5k
ZjNlOGZjZWU3OTAyODk0NTU5MGFkOTlhZGRhYjkxNjNkZWQwNzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTgxLDYgKzE4MSwxNSBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvRW50ZXJQaWN0dXJl
SW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVy
ZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJh
Y2suY3BwCitNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
Y3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcAor
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTM0ODQsNiArMzQ5MywxMyBAQCBKU1No
YXJlRGF0YS5jcHAKIEpTU2xvdGFibGUuY3BwCiBKU1NvdXJjZUJ1ZmZlci5jcHAKIEpTU291cmNl
QnVmZmVyTGlzdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCitKU1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorSlNT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
Y3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuY3BwCiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTU3BlZWNoU3ludGhlc2lzRXZl
bnQuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYWNmMTQ0Mzk5MjQ4
NTgxNDhkZDIwYjllOGRlN2E1MWUzYjIyZGNlLi5iYWQ4YjkyZDY3NDA5YjFjOGQyZTc4MDJmMTUx
OWNkZjA4Y2E5NDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yNzI2LDYgKzI3MjYsMjEgQEAKIAkJOTM0M0NCODIxMkYyNUU1
MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDNDQjgwMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNV
VEY4LmggKi87IH07CiAJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dz
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgg
Ki87IH07CiAJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTA3RTMx
MjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwQ0MyNTM5NDM1RDAwOTlGMTcx
IC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCRTI1Mzk0MzRGMDA5OUYxNzEgLyogRE9NV2lu
ZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLzsgfTsKKwkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b24uaCAqLzsgfTsKKwkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggKi87IH07CisJCTkzNDk1MENGMjUzOTQzNjgwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5NTBCMjI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1
MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQUYyNTM5NDM0
NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi87IH07CisJCTkzNDk1
MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEMzMjUzOTQz
NTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLzsgfTsKKwkJOTM0
OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEM5MjUzOTQzNTUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi87IH07CisJCTkzNDk1MEQzMjUz
OTQzNzcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCMzI1Mzk0MzQ5
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MEQ0MjUzOTQzN0Mw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi87IH07CisJCTkzNDk1MEQ1MjUzOTQzN0YwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEIwMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmggKi87IH07CisJCTkzNDk1MEQ3MjUzOTQzQkIwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNDk1MEI1MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5MzQ5NTBEODI1Mzk0M0MzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUw
Q0IyNTM5NDM1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBEQjI1
Mzk0M0U0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEQ5MjUzOTQzRTEwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MERDMjUzOTQzRTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDk1MERBMjUzOTQzRTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Q0MxMDkw
RURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLzsgfTsKIAkJOTM0RjcxM0Ew
RDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxMzkwRDVBNkYxMDAw
MDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2
OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JC
YXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTExMjM3LDYgKzExMjUyLDM4IEBACiAJCTkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3
RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTBCMDI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjIyNTM5NDM0ODAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCMzI1
Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjUyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjYyNTM5NDM0QTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI5
MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTBCQTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCRTI1Mzk0MzRGMDA5OUYxNzEgLyogRE9N
V2luZG93U3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93U3BlZWNo
UmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkYyNTM5
NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMjI1Mzk0MzUx
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzYyNTM5NDM1MzAwOTlGMTcxIC8qIERPTVdpbmRv
d1NwZWVjaFJlY29nbml0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd1NwZWVj
aFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzcy
NTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MENBMjUzOTQzNTUw
MDk5RjE3MSAvKiBET01XaW5kb3crU3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJET01XaW5k
b3crU3BlZWNoUmVjb2duaXRpb24uaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQ0IyNTM5NDM1NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBEOTI1Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwREEyNTM5NDNFMjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxODA4LDYg
KzIxODU1LDggQEAKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlk
ZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdh
dGlvbi5oICovLAorCQkJCTkzNDk1MEQ5MjUzOTQzRTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oICovLAorCQkJCTkzNDk1MERBMjUzOTQzRTIwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQlDMTQ5MzgwNTIyMzQyNzE5MDAwQ0Q3MDcg
LyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0
NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDND
NDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCkBAIC0yNTMyNSw5ICsyNTM3NCwzOSBAQAog
CQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzQ5NTBDQTI1Mzk0MzU1MDA5OUYxNzEgLyog
RE9NV2luZG93K1NwZWVjaFJlY29nbml0aW9uLmlkbCAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1
MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCisJCQkJOTM0OTUw
QzYyNTM5NDM1MzAwOTlGMTcxIC8qIERPTVdpbmRvd1NwZWVjaFJlY29nbml0aW9uLmNwcCAqLywK
KwkJCQk5MzQ5NTBCRTI1Mzk0MzRGMDA5OUYxNzEgLyogRE9NV2luZG93U3BlZWNoUmVjb2duaXRp
b24uaCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCisJCQkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uLmNwcCAqLywKKwkJCQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uaCAqLywKKwkJCQk5MzQ5NTBBRDI1Mzk0MzQ2MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovLAorCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKKwkJCQk5MzQ5NTBCQzI1
Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAorCQkJ
CTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmlkbCAqLywKKwkJCQk5MzQ5NTBCMjI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FcnJvci5oICovLAorCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oICovLAorCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCisJCQkJOTM0OTUwQzgyNTM5NDM1NDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCisJCQkJOTM0OTUw
QzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovLAor
CQkJCTkzNDk1MEJBMjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaWRsICovLAorCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oICovLAorCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBDMjI1Mzk0MzUxMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8sCisJCQkJOTM0OTUw
QjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCAq
LywKKwkJCQk5MzQ5NTBCNjI1Mzk0MzRBMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcCAqLywKKwkJCQk5MzQ5NTBCNTI1Mzk0MzRBMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmggKi8sCisJCQkJOTM0OTUwQ0IyNTM5NDM1NjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCAqLywKKwkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MEMxMjUzOTQz
NTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkzNDk1MEI5
MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJ
OTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
ICovLAorCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVE
NTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zMTMyNyw2ICszMTQwNiw3
IEBACiAJCQkJNTE4NUZDNzUxQkI0QzRFODAwMTI4OThGIC8qIERPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdEMkFEMDQxNEI4MjNBNjAwOTNERjMyIC8qIERP
TVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUY2MEIxMTE1N0Y2ODZFMDA3
NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENDMjUz
OTQzNUQwMDk5RjE3MSAvKiBET01XaW5kb3dTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQUEyQTVBRDYxNkE0ODYxNjAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDQ0JCNDkxNTFGODMxNjAwQUI3Q0U5IC8qIERP
TVdpbmRvd1dlYkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzREEyRTExNDMxMjFF
MDAwRDgxN0UgLyogRE9NV3JhcHBlcldvcmxkLmggaW4gSGVhZGVycyAqLywKQEAgLTMzOTg4LDYg
KzM0MDY4LDIwIEBACiAJCQkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBo
aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMUEyN0FFMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFj
ZVNwbGl0U3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVB
NjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENEMjUz
OTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MERCMjUzOTQzRTQwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwREMyNTM5NDNFNjAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM0OTUwQ0YyNTM5NDM2ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDEyNTM5NDM3MDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQzMjUzOTQzNzcwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENzI1Mzk0
M0JCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzQ5NTBEODI1Mzk0M0MzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENTI1Mzk0
MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAw
Q0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJB
NUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5NjBhNzM3ZmJl
MjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1M2RlYjdlMmQ3
YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBAQCBSVENEYXRh
Q2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQg
Y29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBjb25kaXRpb25h
bD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KK1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50
aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENvbnRleHRFdmVu
dCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAyZDNlN2Qz
Mzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTb3VyY2VCdWZm
ZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFs
PU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09H
TklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRI
RVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9u
YWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkzMmFjYmJiMTIyNzBiZGZhMjY4OWQ3
YzIwNzc5NDgxOWU2NzkuLjNmNjlhYTBmZDI3M2RiYmM4MzVkZWZmNjEyOTJjZjg2YWYzNTFkYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMjQ4LDYgKzI0OSw5IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUoV0VC
R0wpCiAgICAgLCBtX3dlYkdMU3RhdGVUcmFja2VyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24u
d2ViR0xTdGF0ZVRyYWNrZXIpKQogI2VuZGlmCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKyAgICAsIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKFdURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKSkKKyNlbmRpZgogI2lmIEVOQUJM
RShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLmQw
ODBhZWIwYzE5MmRhMDQ4MDMzMWJlYTUxYmZlNzBkMmY0Y2U1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBA
IC0xMzYsNiArMTM2LDcgQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFzcyBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTb2NrZXRQcm92
aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFNwZWVjaFN5
bnRoZXNpc0NsaWVudDsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI7CkBAIC03NzAsNiArNzcxLDEwIEBAIHB1YmxpYzoKICAgICBXZWJHTFN0
YXRlVHJhY2tlciogd2ViR0xTdGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMU3Rh
dGVUcmFja2VyLmdldCgpOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJ
T04pCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBzcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5n
ZXQoKTsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBTcGVl
Y2hTeW50aGVzaXNDbGllbnQqIHNwZWVjaFN5bnRoZXNpc0NsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LmdldCgpOyB9CiAjZW5kaWYKQEAgLTkwNSw2ICs5MTAs
MTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1f
d2ViR0xTdGF0ZVRyYWNrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJ
T04pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gbV9z
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+IG1f
c3BlZWNoU3ludGhlc2lzQ2xpZW50OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmgKaW5kZXggZjI4NDg4MjZhNmIwMGRkNDIwODkwNzEyOTYzMjU0ZDk5MzI3MmVj
OC4uZThlYjgwNzY4OTkzOWQ1NGFkYmYwZjQ0YjMyZmQ4YzE0NTllZmZiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBVc2Vy
Q29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNz
IFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbjsKIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIAog
Y2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewpAQCAtMTEyLDYgKzExMyw5IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMU3RhdGVUcmFja2VyPiB3
ZWJHTFN0YXRlVHJhY2tlcjsKICNlbmRpZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4gc3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOworI2VuZGlmCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gc3BlZWNoU3lu
dGhlc2lzQ2xpZW50OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2OGQyMDZmMGRlMTZmOGMyZmZkOWU2MGQ0ZWNi
MDIxYjY4Njg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
UmVjb2duaXRpb25DbGllbnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworc3RydWN0IFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQgOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25DbGllbnQ+IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRD
YXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdT
b3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5k
Tm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoY29u
c3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mKSA9IDA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZkNGUwZDhjZDI2NDM3
NTliNDUyMzhmM2NiZmI3ZDI1NjE4Y2M0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4geworcHVibGljOgorICAgIHZpcnR1
YWwgflNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1
YWwgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCosIGNvbnN0IFN0cmluZyYgbGFu
ZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRl
cm5hdGl2ZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbkNs
aWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb25DbGll
bnQqKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAppbmRleCBkYWY1ZmI3MzEzYmRkOTgwNjhkZWRkMzljYmFjNGRmYmU5Mzc3Y2E4Li41ODU2
YjZmODMxNGNhNjhmMmQ0M2VhM2VhYmFiMGFjYjVkMjZlMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTY0
OCw2ICs2NDgsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tl
ckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5j
cHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAK
IAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmFmN2YwNWRiMmIwMTY4NzIwNzhhOTA0NmMxYzNl
MTBiYWQ3MmE4OC4uZTAwZThiZWM1MmNmZmUxMjVhZjJlYTlkYzkyYTA4OTg0OTY3MTY3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05ODkxLDYgKzk4OTEs
MjIgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVk
Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjwKICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0
d29ya1Byb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzcGVl
Y2hSZWNvZ25pdGlvblN0YXJ0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dERhdGEmKQoreworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdG9w
KCkKK3sKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNwZWVjaFJlY29nbml0aW9uQWJvcnQoKQor
eworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVzZXRTcGVlY2hTeW50aGVzaXplcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDJiZmQyOTY3MDVmOWFjZTY4OGE5NTdkM2EzMDU1YzlmNDBl
N2RjZDMuLjE4NDk3NTVlODBkM2Y5MWMxYTliZGYyOGVlZDBkY2E2MGQ5ZTYwYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1J1bkphdmFTY3JpcHRQYXJhbWV0ZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRHcmFudWxh
cml0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaD4K
QEAgLTE2ODYsNiArMTY4NywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBZENsaWNrQXR0cmli
dXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJik7CisgICAgdm9pZCBzcGVlY2hS
ZWNvZ25pdGlvblN0b3AoKTsKKyAgICB2b2lkIHNwZWVjaFJlY29nbml0aW9uQWJvcnQoKTsKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgdm9pZCBzcGVlY2hTeW50
aGVzaXNWb2ljZUxpc3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViU3BlZWNoU3lu
dGhlc2lzVm9pY2U+JiYpPiYmKTsKICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1NwZWFrKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGZsb2F0IHZvbHVtZSwgZmxvYXQgcmF0ZSwgZmxvYXQg
cGl0Y2gsIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lLCBjb25zdCBTdHJpbmcmIHZvaWNlVVJJLCBj
b25zdCBTdHJpbmcmIHZvaWNlTmFtZSwgY29uc3QgU3RyaW5nJiB2b2ljZUxhbmcsIGJvb2wgbG9j
YWxTZXJ2aWNlLCBib29sIGRlZmF1bHRWb2ljZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA0MjE0NWYyYzVjMDRiMzM4YWIwNDFmYjA2ZDY5Njg2YzJmNTc5MTUyLi40YTljMmRk
ODBiMjBiMDBhNDhlMDc2MjJhNGE3NmQwNzZlNzVjYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDksNiArNTQ5LDEyIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBTaWduZWRQdWJsaWNLZXlBbmRDaGFs
bGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBTdHJpbmcgY2hhbGxlbmdlU3RyaW5n
LCBVUkwgdXJsKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKIAorI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisgICAgU3BlZWNoUmVjb2duaXRpb25TdGFydChzdHJ1Y3QgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSByZXN1bHQpCisgICAgU3BlZWNoUmVj
b2duaXRpb25TdG9wKCkKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0
KCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiB2b2ljZUxpc3Qp
IFN5bmNocm9ub3VzCiAgICAgU3BlZWNoU3ludGhlc2lzU3BlYWsoU3RyaW5nIHRleHQsIFN0cmlu
ZyBsYW5nLCBmbG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9uaWNU
aW1lIHN0YXJ0VGltZSwgU3RyaW5nIHZvaWNlVVJJLCBTdHJpbmcgdm9pY2VOYW1lLCBTdHJpbmcg
dm9pY2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0Vm9pY2UpIC0+ICgpIEFz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwZWRhMTVhMzVmZGJhNWM3MjI0MmMxMzg1OGY3MzhjNGFjNmY4YTBlLi43NmU1MjkxNWZk
YWM2MzYxMzJiYjY3YThkN2JlYjM4NjQyNWRjMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTYsNiArMTM1Niw3IEBACiAJCTkz
M0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzUzMjNBMDdCRjgwMERFRjI4OSAv
KiBXZWJJREJTZXJ2ZXIuaCAqLzsgfTsKIAkJOTMzRTgzNUEyM0ExQUUyODAwREVGMjg5IC8qIFdl
YklEQlNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKKwkJOTM0OTUwNzQyNTM4QjJDQTAwOTlGMTcxIC8qIFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYgLyog
V0tBY3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRl
bVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3
OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJE
RDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1
NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi87IH07CkBAIC00NDEyLDYgKzQ0MTMsOCBA
QAogCQk5MzNFODM1NzIzQTFBODcyMDBERUYyODkgLyogV2ViSURCU2VydmVyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYklEQlNlcnZlci5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzRTgzNTgyM0ExQURGNTAwREVGMjg5IC8qIFdlYklE
QlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyog
V2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViSURCU2VydmVyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SURCU2VydmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwNzMy
NTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVC
OUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVFRUI5NTEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVF
RUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1MzIsNyArNDUzNSw3IEBACiAJCTlCMTIyOUQw
MjNGRjJBNUUwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3OTA4QzI1MzE0RDgzMDBFQzExQUIgLyogTWVzc2Fn
ZUFyZ3VtZW50RGVzY3JpcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VBcmd1bWVudERl
c2NyaXB0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ3OTA4RTI1MzE1
MUNDMDBFQzExQUIgLyogSlNJUENCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSVBDQmluZGlu
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzEx
QUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHBhdGgg
PSBNZXNzYWdlQXJndW1lbnREZXNjcmlwdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5QjQ3OTA5MDI1MzE1NjMyMDBFQzExQUIgLyogTWVzc2FnZUFyZ3VtZW50RGVzY3Jp
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lc3NhZ2VB
cmd1bWVudERlc2NyaXB0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
NTQ5OUFDMjM2MkE2RjYwMERGOEJBNSAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU0OTlBRTIzNjJBN0E3MDBERjhCQTUgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUI1NDk5QjAyMzYyQTdFQzAwREY4QkE1IC8qIF9XS1RleHRNYW5pcHVsYXRp
b25FeGNsdXNpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25FeGNs
dXNpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTIwLDYgKzg5MjMs
OCBAQAogCQkJCTQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNl
cnZlci5oICovLAogCQkJCUQzQjk0ODQ0MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuY3BwICovLAogCQkJCUQzQjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQ
b3B1cE1lbnUuaCAqLywKKwkJCQk5MzQ5NTA3MzI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLywKKwkJCQk5MzQ5NTA3MjI1MzhCMkMyMDA5OUYx
NzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJQzE0OTM4MDMy
MjM0MURGNzAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAgKi8sCiAJCQkJ
QzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oICov
LAogCQkJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oICovLApAQCAtMTE0ODMsNiArMTE0ODgsNyBAQAogCQkJCTcxRkI4MTBCMjI2MDYyN0UwMDMy
MzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5u
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUIxMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwNzQyNTM4QjJD
QTAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8qIFdl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgxQTM4
Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU3N2U4N2ViNDhhY2Y4N2JlZGFkZjU1ODQ1MDUxZWEyMGI3MWE3MmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDE1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkK
K3sKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0YXJ0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpCit7CisgICAgYXV0byByZXF1ZXN0ID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0OjpjcmVhdGUoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywg
bWF4QWx0ZXJuYXRpdmVzKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hcHBlbmQocmVxdWVzdC5w
dHIoKSk7CisgICAgcHJvY2Vzc1BlbmRpbmdSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgV2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpyZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCkKK3sKKyAgICBhdXRvIHBlbmRp
bmdSZXF1ZXN0cyA9IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nUmVxdWVzdHMsIHsgfSk7CisgICAg
d2hpbGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gcmVxdWVz
dCA9IHBlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKHJlcXVlc3QtPmNs
aWVudCgpID09IGNsaWVudCkgeworICAgICAgICAgICAgY2xpZW50LT5kaWRFbmQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FcnJvcigpKTsKKyAgICAgICAgICAgIC8vIE9uZSBjbGllbnQgc2hv
dWxkIGhhdmUgb25lIHJlcXVlc3QgYXQgYSB0aW1lLgorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChXVEZNb3ZlKHJlcXVlc3Qp
KTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdG9w
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAgaWYgKGN1
cnJlbnRDbGllbnQoKSA9PSBjbGllbnQpIHsKKyAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3BlZWNoUmVjb2duaXRpb25TdG9wKCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIHJlbW92ZVBlbmRpbmdSZXF1ZXN0RnJvbUNsaWVudChjbGllbnQp
OworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6YWJvcnQoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCkKK3sKKyAgICBpZiAoY3VycmVudENs
aWVudCgpID09IGNsaWVudCkgeworICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KGNsaWVudCk7Cit9CisKK3Zv
aWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzUGVuZGluZ1JlcXVlc3Qo
KQoreworICAgIGlmIChtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICB3
aGlsZSAoIW1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSAmJiAhY3VycmVudENsaWVudCgpKQor
ICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7
CisKKyAgICBpZiAoY3VycmVudENsaWVudCgpKQorICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTcGVlY2hSZWNvZ25pdGlvblN0YXJ0KG1fY3VycmVudFJlcXVlc3Qt
PmRhdGEoKSkpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y29t
cGxldGVDdXJyZW50UmVxdWVzdChjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikK
K3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChhdXRvKiBjbGllbnQgPSBjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIGNsaWVudC0+ZGlkRW5k
KGVycm9yKTsKKworICAgIG1fY3VycmVudFJlcXVlc3QgPSBudWxscHRyOworfQorCit2b2lkIFdl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJvZ3Jlc3NEaWRVcGRhdGUoY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSYgdXBkYXRlKQoreworICAgIGlmICghbV9jdXJy
ZW50UmVxdWVzdCkgeworICAgICAgICBMT0dfRVJST1IoIldlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbjo6cHJvZ3Jlc3NEaWRVcGRhdGUgcmVjZWl2ZXMgdXBkYXRlIHdoZW4gbm90IHByb2Nl
c3NpbmcgcmVxdWVzdHMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gdHlw
ZSA9IHVwZGF0ZS50eXBlKCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZVR5cGU6OkVycm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZVR5cGU6OkVuZCkgeworICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KHVwZGF0
ZS5lcnJvcigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNsaWVudCA9
IGN1cnJlbnRDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlN0YXJ0
KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpCisgICAgICAgIGNsaWVudC0+
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0
YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRD
YXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlVHlwZTo6U3BlZWNoRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlVHlwZTo6U291bmRFbmQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkF1ZGlvRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAg
IGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpSZXN1bHQp
CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3VsdCh1cGRhdGUucmVzdWx0cygpKTsKKyAg
ICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6Tm9NYXRj
aCkKKyAgICAgICAgY2xpZW50LT5kaWRGaW5kTm9NYXRjaCgpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudCogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjdXJyZW50Q2xpZW50
KCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgcmV0dXJuIG1fY3VycmVudFJlcXVlc3QtPmNsaWVudCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWYwNTExODBhOGFlNzZjMmE0YzQ5MzU2YjAy
ODk4MjhhYWRkMzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbihXZWJQYWdlJik7CisKKyAgICB2b2lkIHN0YXJ0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMs
IGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcykgZmluYWw7Cisg
ICAgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50KikgZmluYWw7Cisg
ICAgdm9pZCBhYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCopIGZpbmFsOwor
Citwcml2YXRlOgorICAgIHZvaWQgcHJvY2Vzc1BlbmRpbmdSZXF1ZXN0KCk7CisgICAgdm9pZCBj
b21wbGV0ZUN1cnJlbnRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJy
b3ImKTsKKyAgICB2b2lkIHJlbW92ZVBlbmRpbmdSZXF1ZXN0RnJvbUNsaWVudChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCopOworICAgIHZvaWQgcHJvZ3Jlc3NEaWRVcGRhdGUoY29u
c3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSYpOworCisgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGN1cnJlbnRDbGllbnQoKTsKKworICAgIFdl
YlBhZ2UmIG1fcGFnZTsKKyAgICBEZXF1ZTxSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4gbV9jdXJyZW50UmVxdWVzdDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBiM2E4MTUwOGQ0MTg0NmVhMmU5YWJlOWE2MzlhYTdiMWM0ODk2
M2QwLi40YWRiOWI1NzRjZTQ5NTI4MzkyNTRhODhhM2ZlNzQyMmRhNzgzYTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw3
IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
U2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJX
ZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCkBAIC01MjYsNiArNTI3LDEw
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICB9KTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bj4oKnRoaXMpOworI2VuZGlmCisgICAgCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoU3ludGhlc2lzQ2xpZW50ID0gbWFrZVVuaXF1ZTxX
ZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ+KCp0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5jcHAKaW5kZXggMTc1N2E2YTliMWIxMjUzMDEzNWFiOGY3N2IxZWE1OWY2YjAyZWRlOC4u
NWIzZTcwMGUwOTU4ZTJmYmQ1NjkxNzgwNDI3MWRlZGM5NGZjNWU0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1
ZGlvQnVmZmVyTGlzdC5oPgpAQCAtMzMsNyArMzQsNiBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXI6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411727</attachid>
            <date>2020-10-19 00:57:07 -0700</date>
            <delta_ts>2020-10-19 09:42:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201019005706.patch</filename>
            <type>text/plain</type>
            <size>163508</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdhYWI1ZGEzOTI3YmUyZWExZDhkMTM4
MGY5YmU0ZDEwYmE5MmZjN2MuLjk4NjljOWNiYWJlMTM1ZTM4MGFlOGUwNmVjYTYyNzQxZjViNGM5
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oOgorCiAyMDIwLTEwLTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IC1XZGVwcmVjYXRlZC1jb3B5IHdhcm5pbmdzIGluIFdURiBhbmQgSmF2YVNj
cmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMjA4ZmI5OTEyNzM2Y2U1MmUyMTNjYmY4OTIxZjUxZDA5
M2NkMWQwLi45N2Y4NjFiYmQyM2Y3NDBjZTlkNzAwYjcyNDcwZDkxOTVkYzNlZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTI4IEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9z
cGVlY2gtYXBpLyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAgICAgVGVzdDogc3BlZWNoL3Nw
ZWVjaHJlY29nbml0aW9uLWFwaS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJl
Y29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJl
Y29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJp
bmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRD
YXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
U3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpj
b250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpz
ZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6ZXZl
bnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZTo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGU6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGU6OnJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlOjpvcHRpb25hbEVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6Om9wdGlvbmFsUmVzdWx0cyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmRhdGEgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVy
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNv
ZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBk
b20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMTggIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUgZHVwbGljYXRlZCBJ
R05PUkVfV0FSTklOR1NfQkVHSU4oImZyYW1lLWFkZHJlc3MiKSBjYWxscyBmcm9tIHIyNjg2NjEu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGMzOGUwZGE0ZTU0MzVhYmVkNDZlNTM1ZTJlZmY3ODdkN2Q1NTU4OTYuLmZl
ODYxNjEyZTFjNDFhYzQ2NDAzZTRmYWVhOWFkMTBiN2QxZDc4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNwZWVjaFJlY29n
bml0aW9uU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNwZWVjaFJl
Y29nbml0aW9uU3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3BlZWNo
UmVjb2duaXRpb25BYm9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpyZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJv
Y2Vzc1BlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9ncmVzc0RpZFVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBw
Qm91bmREb21haW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjptX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyKToKKwogMjAyMC0xMC0xOCAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIHNsdWdnaXNoIHBh
Z2Ugc2Nyb2xsaW5nIGZvciB3aGVlbCBldmVudHMgc2luY2UgcjI2ODQ5OQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IDU1M2MwNGE3MzdjM2Q3MWE5OGI2YTI1MTRkOGFmNTQwMjQ5MzY0
OTguLmQ2NTQ5Y2Y1Njk2NTY5M2FiMWZiY2I5ZWRlZTdlODQzNGFjMWVmOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJl
Y29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgor
ICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRdKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOl0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIwMjAtMTAtMTcg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjU0MzApOiBGaXggLVdzdHJpbmctY29uY2F0ZW5hdGlvbiB3YXJuaW5nIGZyb20gb3BlbiBz
b3VyY2UgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWZhNmVkOTAxMTc4
N2FmYWVkNDU2ZjRkZTc4MzI4OWU0ZTdlNmU4NC4uMDIwYTE0NjUyNTgwNDliNzJjNjgzYjVjMjQz
ZjNhNjQ3MTM2MjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTcyOCw2ICs3
MjgsMTggQEAgU2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50
TG9hZE9yRmlyc3RQYWludDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitT
cGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJTcGVlY2hSZWNvZ25pdGlvbiBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBTcGVlY2hSZWNvZ25pdGlvbiBmcm9tIFdlYlNwZWVjaCBBUEkiCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktp
dDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisKICMgRklYTUU6IFRoaXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxf
RkVBVFVSRVMpIGlzIHRydWUgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIg
dXNpbmcgdGhhdCBmb3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBTcHJpbmdUaW1pbmdGdW5jdGlv
bkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApp
bmRleCA5M2ZhZmRhMTE0Yzk5MmI2NDMwOTVkMWIyYjk3NDY0MmYzNjg4Y2IwLi5kYTk2ZGVmOTk3
ODgwZGY0YjU5ODhjZDM2OWVhNmE5NTQwOWJmZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oCkBAIC00MjEsNiArNDIxLDEwIEBACiAjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1JF
Q09HTklUSU9OKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9TUEVF
Q0hfUkVDT0dOSVRJT04gMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUykgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfU1BFRUNI
X1NZTlRIRVNJUyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmYxMzYzNzFkODlh
YmJkOTZkZmFkYmZmMjEzYjdmNzc3OGQxNjIzYS4uMTYwNzdkZTY4MjE4MDYzODY3ZWIyZjhjNDI3
OTllNTNmMjI0OTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzNiw2ICs0MzYsMTQgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmlkbAogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCisgICAgTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCA3YTQ1NDFkMTdmZWIzZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi4wMjNhOWRmY2QzNjNk
MmZkNmY1ZDAxZDQ2Y2QxNjM2MjZmNDVjOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsyNzksMTMgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3RhLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVtZW50K1JlbW90
ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNp
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCBlOTQ3MjkwNjIyMDg5MWFjZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi5mMDk0YmY5NmRmMjg1
ZTlmNzU3YTM0M2M5NGJmZjUxYzE4NmUyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjExMCw2ICsyMTEwLDIwIEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VC
dWZmZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
b3VyY2VCdWZmZXJMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIz
MGM1N2U2OWIxMzYuLmI4YzgyZjhiZDM3ZjhkMDk0ODc1MjMwMzIwOTk4Yjc5NDhhM2Y1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzA2LDYgKzMwNiwxMyBAQCBKU19CSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXNFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNWb2ljZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBkNDYyM2EyNzVjODg3NzNlNzE2NGYyNTk1ZTBhNjE1YjNiN2Yx
NzUxLi5lMGM1ZGE5NjYzMjhkNjM4ZGUyMzE2ZTVmODQ5NDE0OTE4N2JjODE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTExMCw2ICsxMTAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKICAgICBN
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKIAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaAorCiAgICAgTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTAzMjNjYjUyYzljMTI5YzUyNGE2M2ZjYTk1NWVkN2U1NDRlNjg4MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRp
b24oZG9jdW1lbnQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9u
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sK
KyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBhdXRvKiBj
bGllbnQgPSBwYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKyAgICAgICAgaWYg
KGNsaWVudCkKKyAgICAgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFr
ZVdlYWtQdHIoKmNsaWVudCk7CisgICAgfQorCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGFib3J0KCk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
bikKK3sKKyAgICBhYm9ydCgpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25p
dGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6Oklk
bGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29n
bml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBp
ZiAobV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLT5zdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcg
JiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29n
bml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQor
ICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjphYm9ydFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRp
bmcgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJl
Y29nbml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOwor
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQoKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKyAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2du
aXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIp
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uRXJyb3I+IGVycm9yKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SWRsZTsKKyAg
ICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworCisgICAgaWYgKGVycm9yKQorICAgICAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBlcnJvci52YWx1ZSgpLnR5cGUsIGVycm9yLnZhbHVlKCkubWVzc2FnZSkp
OworICAgIGVsc2UKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVj
dG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBW
ZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxS
ZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRh
cy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsK
KworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsK
KyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAg
ICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQor
ICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0
aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEu
aXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAg
IG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5h
bFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1v
dmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
c3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0
KCkpKSk7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjOTFhYmEyNGVk
ZWQ0NTMxMmE5OTEyODBmNTFlMTQ5OGJkYjc4NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09H
TklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50
OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7Cisg
ICAgflNwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25z
dCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5n
KSB7IG1fbGFuZyA9IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGludW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVv
dXMpIHsgbV9jb250aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVz
dWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldElu
dGVyaW1SZXN1bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGlu
dGVyaW1SZXN1bHRzOyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7
IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVz
KHVuc2lnbmVkIG1heEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVy
bmF0aXZlczsgfQorCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvZ25pdGlvbigpOwor
ICAgIHZvaWQgc3RvcFJlY29nbml0aW9uKCk7CisgICAgdm9pZCBhYm9ydFJlY29nbml0aW9uKCk7
CisKKyAgICAvLyBUT0RPOiBtYWtlIHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAg
ICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlv
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENh
cHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gPSBXVEY6Om51bGxvcHQpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmKSBmaW5hbDsK
KworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJl
ZjsKKworcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgU3RhcnRpbmcs
CisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywK
KyAgICAgICAgSWRsZSwKKyAgICB9OworICAgIFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7
CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Q7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOwor
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAg
dm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICBTdGF0ZSBt
X3N0YXRlIHsgU3RhdGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNpZGUgZGVmYXVsdCBsYW5n
dWFnZS4KKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1f
bWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKworICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkMDNhNjUyNzA0MjIy
ZTk5YWMyMDE3ZmIwNjY5NWViNzMxMTFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBDb25kaXRpb25hbD1T
UEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlv
biwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb24gewor
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoKTsKKworICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFuZzsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb250aW51b3VzOworICAgIGF0
dHJpYnV0ZSBib29sZWFuIGludGVyaW1SZXN1bHRzOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIG1heEFsdGVybmF0aXZlczsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgSW1wbGVtZW50
ZWRBcz1zdGFydFJlY29nbml0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICBbSW1wbGVtZW50
ZWRBcz1zdG9wUmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdG9wKCk7CisgICAgW0ltcGxlbWVudGVk
QXM9YWJvcnRSZWNvZ25pdGlvbl0gdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
c291bmRzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7Cisg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlv
ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVy
cm9yOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjE1ODQzODZmNGVkYzFlZTE5ZDEwMWJkYjg2ZjhmOGJmZWI4YjNiOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0
cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0
KSwgY29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25m
aWRlbmNlKQorICAgIDogbV90cmFuc2NyaXB0KHRyYW5zY3JpcHQpCisgICAgLCBtX2NvbmZpZGVu
Y2UoY29uZmlkZW5jZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmM2MGUxMjQ3ZGYwNTJmYzQyZTJk
NWM5NDQ4MGNmZjg0MGI2ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4geworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBjcmVhdGUoU3Ry
aW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIHRyYW5z
Y3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAgICBkb3VibGUgY29uZmlk
ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwg
ZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFl
YWE0M2Q0Nzk2ZGQ5ODM3YmVjOWQyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ2NWEwYzhjZTNl
NjdmY2Y0M2MwNmI4MjJlNDA0YWQ5MGE3Zjc3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsx
LDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAgICBO
b1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAor
ICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwK
KyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5n
IG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
RXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2FnZSkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RB
bGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFk
R3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxh
bmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMmI5YzE0ZjVjNTlmNTExOTEw
MTE1OTM3NmQ0ZjJhYTFhNDY0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVkYTkwYWRh
N2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
XSBlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAg
ICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAi
bm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1t
YXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUwNjVmYmVi
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Ojpj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVk
IGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQu
ZXJyb3IpCisgICAgLCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVz
c2FnZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWZmZjFj
ZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworcHVi
bGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgIH07CisK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7Cisg
ICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7
IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1fZXJyb3I7
CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2MjY1ZDNj
OTdhNGQ0YzE5MGU3M2Q4NTc4YmUwMjlkNDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCk7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25hcnkgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1lc3NhZ2Ug
PSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEyMTdlNzE1
MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5pdCwgaXNU
cnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0
SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIHJl
c3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQs
IGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkKKyAgICAs
IG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6
OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3Qg
cmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0
cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jl
c3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVj
b2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2FmYTYyNDY3
MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJ
T04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25F
dmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3Bl
ZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCBy
ZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAg
ICB1aW50NjRfdCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0K
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVy
biBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRl
eCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWludDY0X3Qg
bV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBt
X3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NDhjM2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJkMzQzMTFj
MThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVz
dWx0czsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVu
dEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVk
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NlNTMwYWYxMGY3MTY5NmUxOTJmYWYxODA5
ZjFlYmNhYmJhMDI1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnVwZGF0ZShTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlIHsgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmVycm9yKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUgdXBkYXRlIHsgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkVycm9yIH07CisgICAgdXBkYXRlLm1fZXJyb3IgPSB7IGVycm9yIH07CisgICAgcmV0dXJuIHVw
ZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlOjpyZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZSB1cGRhdGUgeyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0
IH07CisgICAgdXBkYXRlLm1fcmVzdWx0cyA9IHsgcmVzdWx0cyB9OworICAgIHJldHVybiB1cGRh
dGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgdHlw
ZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MWVmNWVi
YTBlYzg2ODc1MGFlODQ3MmZmZTA1MDU2ZDgyZTRmMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlIHsKKyAgICBJbnZhbGlkLAorICAg
IFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFy
dCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVz
dWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kLAorfTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgdXBkYXRlKFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZSBlcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25FcnJvcj4gb3B0aW9uYWxFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJy
b3I7IH0KKyAgICBPcHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4g
b3B0aW9uYWxSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzOyB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlVHlwZSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSBt
X3R5cGU7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gbV9lcnJvcjsKKyAg
ICBPcHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gbV9yZXN1bHRz
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX3R5cGUgPDwgbV9lcnJvciA8PCBtX3Jlc3VsdHM7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+IFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpJbnZhbGlkKTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3R5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9lcnJvcikpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jlc3VsdHMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6SW52YWxpZCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpSZXN1bHQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpOb01h
dGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlw
ZTo6RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmNDJkZjVmNmZlYjQ4ZWUxMTFhZTU3ZTJl
NTY0YjUwMWQ5ZTBhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCwgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVz
dWx0cywgbWF4QWx0ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQs
IGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRz
LCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihj
bGllbnQpKQorICAgICwgbV9kYXRhKFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgeyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBsYW5nLCBjb250aW51
b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH0pCit7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OGY3
MjA3OTQ4ZjNjYzRhMDk2MTJiMTkyNTUwNTZjODczNzBjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
LmdldCgpOyB9CisgICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSYgZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpOworCisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4gbV9jbGllbnQ7
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSBtX2RhdGE7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxYTM4MjU2ZGQyMzk0ZDU2YTFhMWMzMDJlZDU2YmYxZDVlOWMzNTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIgorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSB7CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SWRlbnRpZmllciBpZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wg
Y29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07
CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRh
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8
PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91cykp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5pbnRlcmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNGM1YmQ1MjIyMzIzMWFjY2I3MDM1MWNmYTJiZTRlNzNiMDc0NDAz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworCit9CisKKyNlbmRpZiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNj
N2Y0ZjAwOTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBp
c0ZpbmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0KFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6
IG1fYWx0ZXJuYXRpdmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChp
c0ZpbmFsKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4g
KGluZGV4IDwgbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5w
dHIoKSA6IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZk
MWRkYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNl
IH07Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRl
M2E4MWU0NTJlMmJjNTUxMzZkYTg3NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1X
aW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTEyODhlMDYwYTFmMzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJp
bmcgdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7
CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2
ZXM7CisgICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViOWU3YTA2MDVmMWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6
Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlz
dC5zaXplKCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJl
c3VsdCkKK3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RG
TW92ZShsaXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4
MjYwNjZmZWU5NjU0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVt
KHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Jik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkg
PSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEw
ZTRiZDczMTFkYjgyOGIzZjIwZjlhNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05J
VElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93
CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDljODg3
NTFlM2M2ODA2NDFkZDNkMGI0NjNhNTg1Zjg1OWIwOWMyNzMuLmZkNWM0NDkxNDAxZDIzZDIxY2Nj
MGFmOTUzOThkM2U5NDk5NGJhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MWM1ODc5ODVlNDA5Y2ViMjEzMWI4
OGExY2M0YmY3Y2E3ZjVjM2VkLi5hYzQyMmI4ODA5NmVlMTE1OGNjOGIxMzY3ODEwNzUwY2EwYmZh
YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTgxLDYgKzE4MSwxNCBAQCBNb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3Bw
CitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwCkBAIC0zNDg4LDYgKzM0OTYsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBKU1Nsb3RhYmxlLmNw
cAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCitKU1NwZWVjaFJl
Y29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorSlNTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogSlNTcGVlY2hTeW50
aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2Y3NTllNjM3ODVmNTNkNDg4ZjY3M2E0YTdkMDg0ODZhOWNmNWY0
ZS4uMTdhYzViZjUyMjNjOWU1MTgxYTAxMmE4ZGJlMmZhZjYyNmNkYWJjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjcyOSw2
ICsyNzI5LDIyIEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4
MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZG
OSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5
NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1MENFMjUz
OTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTBD
RjI1Mzk0MzY4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjIyNTM5NDM0ODAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oICovOyB9OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggKi87IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oICovOyB9OworCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICov
OyB9OworCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQ5NTBCMDI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUw
RDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OworCQk5MzQ5
NTBENzI1Mzk0M0JCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCNTI1Mzk0MzRB
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRDgyNTM5NDNDMzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwREIyNTM5NDNFNDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTBEOTI1Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
MzQ5NTBEQzI1Mzk0M0U2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBEQTI1
Mzk0M0UyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTEyNTNBNTlB
NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MERGMjUzQTU5QTYw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTgyNTNDRUE4
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlw
dFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87IH07
CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3
MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEzQzBE
NUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBS
ZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTI0NSw2ICsxMTI2MSwzNyBAQAogCQk5MzQ0MkM5RDBEMkIzMzVDMDAz
MzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTA3
RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjEy
NTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEIy
MjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI1MjUzOTQzNEEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEI2MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI4
MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQzI1Mzk0
MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkYyNTM5NDM1MDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMjI1Mzk0MzUxMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5NDM1MjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MERBMjUzOTQz
RTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MERGMjUzQTU5QTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwRTcyNTNDRUE4QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBB
NjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRTb3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NEY3MTM3MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1
QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4MjMsNiArMjE4NzAsOSBAQAogCQkJCTVD
N0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNE
RTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2
Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTM0
OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJ
CQkJOTM0OTUwREEyNTM5NDNFMjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oICovLAorCQkJCTkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3Vz
cGVuZGFibGVUaW1lci5oICovLApAQCAtMjUzNDEsNiArMjUzOTEsMzQgQEAKIAkJCQlBQTJBNUFC
QTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJ
CQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5j
cHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5oICovLAorCQkJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmggKi8sCisJCQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmlkbCAqLywKKwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1
Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJ
CQkJOTM0OTUwQjIyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
LywKKwkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCAqLywKKwkJCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsICovLAorCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBC
QTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywK
KwkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5j
cHAgKi8sCisJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTM0OTUwQzIyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwICovLAorCQkJCTkzNDk1MEIzMjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggKi8sCisJCQkJOTM0
OTUwQjYyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8s
CisJCQkJOTM0OTUwQjUyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovLAorCQkJCTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3REYXRhLmggKi8sCisJCQkJOTM0OTUwREYyNTNBNTlBNjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCAqLywKKwkJCQk5MzQ5NTBCRjI1Mzk0MzUw
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MEMx
MjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkz
NDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8s
CisJCQkJOTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovLAorCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFC
RDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFC
RTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDAxNSw2ICsz
NDA5MywyMiBAQAogCQkJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGlj
LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VT
cGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRDI1Mzk0
MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
NDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEQjI1Mzk0M0U0MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MERDMjUzOTQzRTYwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MENGMjUzOTQzNjgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRTgyNTNDRUE4
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNDk1MEQ3MjUzOTQzQkIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ4MjUzOTQzQzMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBFMTI1M0E1
OUE2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBB
MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3
MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLmNmMmQ5ZWZkMzcxZWZhZThh
ODBjZDY3YzI5ZDQ2NjhhOWE3MDBhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzOCw2ICsyMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSBcCiAgICAgbWFj
cm8oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbikgXAogICAgIG1hY3JvKFNoYWRvd1Jvb3QpIFwK
KyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbikgXAogICAgIG1hY3JvKFN0YXRpY1JhbmdlKSBc
CiAgICAgbWFjcm8oU3RlcmVvUGFubmVyTm9kZSkgXAogICAgIG1hY3JvKFN0eWxlUHJvcGVydHlN
YXBSZWFkT25seSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5
NjBhNzM3ZmJlMjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1
M2RlYjdlMmQ3YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBA
QCBSVENEYXRhQ2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBj
b25kaXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04K
K1NwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBT
cGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENv
bnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4
OTAyZDNlN2QzMzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0
LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VS
CiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBT
b3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNv
bmRpdGlvbmFsPU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BF
RUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BF
RUNIX1NZTlRIRVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUg
Y29uZGl0aW9uYWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkzMmFjYmJiMTIyNzBi
ZGZhMjY4OWQ3YzIwNzc5NDgxOWU2NzkuLmE2NDkwYTkwNDJlMjg4NjBhN2MyOTkwZTkxM2M1NDEy
OWU2YTgxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2Nr
ZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI0OCw2ICsyNDksOSBAQCBQ
YWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5B
QkxFKFdFQkdMKQogICAgICwgbV93ZWJHTFN0YXRlVHJhY2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICNlbmRpZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKKyNlbmRpZgogI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCkBA
IC0zMzk5LDQgKzM0MDMsMTQgQEAgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKICAgICByZXR1cm4gdHM7CiB9
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBjb25zdAoreworICAg
IGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiAmbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFh
ZDUuLjY2YTI2YjQwOTRiOGVjN2VhZDA2YzhmNTFiMmNjZTY5NjkwNDVhYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC0xMzYsNiArMTM2LDggQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFz
cyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpA
QCAtNzcwLDYgKzc3MiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdM
U3RhdGVUcmFja2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3Q7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVl
Y2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgpAQCAtOTA1LDYgKzkxMSwxMCBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gbV93ZWJHTFN0
YXRlVHJhY2tlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAg
ICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVu
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmRjZmI5NzI4ZTJhM2Y1ODdi
YjdhMzAzZGUzYzJmNWFjZDFiMDc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwog
Y2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwog
Y2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CkBAIC0xMTIsNiArMTEzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJHTCkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2VyOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyNlbmRpZgogI2lm
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50
aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYzE4ZTFlM2IwMWE2M2M3
YzgwY2RhNGNiNzU0NGVhMWM1ZWVjOTA0Li5iYzYxZjlhOWE5MDk3NWU1OGU1M2VmY2Q1M2U2MTAy
Y2Q4Njk0YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaApAQCAtMjUyLDYgKzI1MiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNhYmxlTWVkaWFF
eHBlcmllbmNlUElESW5oZXJpdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVNZWRpYUV4
cGVyaWVuY2VQSURJbmhlcml0YW5jZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorICAgIHZvaWQgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IG1fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAg
Ym9vbCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5z
dGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpOwpAQCAtMzc4LDYgKzM4Mywx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhYmxlTWVkaWFFeHBlcmllbmNlUElESW5oZXJp
dGFuY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorICAgIGJvb2wgbV9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlm
CisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1lRW5hYmxlZEZl
YXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NGQ1ZTVlOGEzMTFiYzZlMzYxMzEwMmZhNTFiYmRhN2EyM2Vh
ZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0
dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kKE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZjc4MjJhNTE3N2ZjY2FkNTYyNjcxOGYxODRjOWFmNGYx
ZDY1YmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgPSAwOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjRlODBlMDEwNjZjNmVmYWRlYTQ2ZjQ5
YzMxMzI1MzI3MjZhZGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBz
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3OTZkYjY5OTZlZWRmZTViN2U5Mjgw
MDEzNzIwNTRjZjY5YzM4MDQ2Li5kZGI0NTM0ZjE3MzI1OTFiNmUzNmI0YzcwNWRhMDJlNzFiZGMx
ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTY1NCw2ICs2NTQsOCBAQCBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggMTk4NjNmNTYxNmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1ZC4uODQzYTgxMDVlMTgx
YjA1MDExNzNiZGMzYTA5Y2YxMzNlMWY2MTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xODg1LDYgKzE4ODUsMjIgQEAgYm9vbCBXZWJQcm9j
ZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIoKSBjb25zdAogICAgIHJldHVybiAhbV9zbGVlcERp
c2FibGVycy5pc0VtcHR5KCk7CiB9CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RvcCgpCit7Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkKK3sKK30KKworI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxMWU4NDBhMTk5OGM1N2M2NjEwMmRmOTg3
ZDBmMjY3YTdiMmM2MDQwLi5lNzM2ZDA3NjUwZmUxYTMzMTBkMjRhNjk3MjhhOTY0Y2I4YTdmZjM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDksNiAr
NDksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlz
YWJsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEu
aD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zOTQsNiArMzk1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICAKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25T
dGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJik7CisgICAg
dm9pZCBzcGVlY2hSZWNvZ25pdGlvblN0b3AoKTsKKyAgICB2b2lkIHNwZWVjaFJlY29nbml0aW9u
QWJvcnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IGMxNTcwNDczYjBjM2YwY2I3NWM1MjExYzkwYzMyYzVjOTU4NGIyYTIuLjJjZjBlNjRjMjcyNDEy
NGEyMjgxOTYwNmQ1YzE2YmZkYzA5MGViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTg3LDQgKzg3LDEwIEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVh
dGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNh
YmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBTcGVlY2hSZWNvZ25pdGlvblN0YXJ0KHN0
cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdCkKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblN0b3AoKQorICAgIFNwZWVjaFJlY29nbml0aW9uQWJvcnQoKQorI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2YmQ5YWM0NWYzMWFjNDNjMmZjMDk2NGFmNWZkZGU0YTc4ZTY4NDg3Li4yMTY3NTk4
YWE5ZDRkMTc5MTk5MWNhMGMxNjM4NzVmZWMzYzdjOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzMsNiArMTM3Myw4IEBACiAJ
CTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzUzMjNBMDdCRjgwMERFRjI4
OSAvKiBXZWJJREJTZXJ2ZXIuaCAqLzsgfTsKIAkJOTMzRTgzNUEyM0ExQUUyODAwREVGMjg5IC8q
IFdlYklEQlNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVz
c2FnZXMuaCAqLzsgfTsKIAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklEQlNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTM0OTUwNzQyNTM4QjJDQTAwOTlGMTcxIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5MzQ5NTBFQjI1M0NFQURCMDA5OUYxNzEg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5
NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9u
TWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1
MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJ
OTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovOyB9OwpAQCAtNDQ1NCw2ICs0
NDU2LDEwIEBACiAJCTkzM0U4MzU3MjNBMUE4NzIwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCU2VydmVyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNFODM1ODIzQTFBREY1MDBERUYyODkg
LyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzM0U4MzU5MjNBMUFERjUwMERF
RjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQk5MzQ5NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTA3MzI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEU5MjUzQ0VBRDcwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBFQTI1M0NF
QUQ4MDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBX
S0FjdGlvbk1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tBY3Rpb25NZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NUVFQjk1MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTAyNCw2ICs5MDMwLDEwIEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2
NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzNDk1MDczMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAor
CQkJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCAqLywKKwkJCQk5MzQ5NTBFOTI1M0NFQUQ3MDA5OUYxNzEgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5jcHAgKi8sCisJCQkJOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5Mzgw
MjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJ
QzE0OTM4MEEyMjM4NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8s
CkBAIC0xMTU5NCw2ICsxMTYwNCw4IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8q
IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3NDI1MzhCMkNBMDA5OUYx
NzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzQ5NTBFQjI1M0NFQURCMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRE
NjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhMTJiYjViNDdmMjk2N2VlNTAzMjM5NDZhMjRjNTlm
YjA2YWVmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsx
LDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcs
IGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6Y3JlYXRlKGNsaWVudCwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMs
IG1heEFsdGVybmF0aXZlcyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUo
cmVxdWVzdCkpOworICAgIHByb2Nlc3NQZW5kaW5nUmVxdWVzdCgpOworfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgYXV0byBw
ZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOwor
ICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJl
cXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0
LT5jbGllbnQoKSA9PSAmY2xpZW50KSB7CisgICAgICAgICAgICBjbGllbnQuZGlkRW5kKCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMu
YXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQm
IGNsaWVudCkKK3sKKyAgICBpZiAoY3VycmVudENsaWVudCgpID09ICZjbGllbnQpIHsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTcGVlY2hSZWNvZ25pdGlvblN0b3Ao
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVl
c3RGcm9tQ2xpZW50KGNsaWVudCk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQor
eworICAgIGlmIChjdXJyZW50Q2xpZW50KCkgPT0gJmNsaWVudCkgeworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNwZWVjaFJlY29nbml0aW9uQWJvcnQoKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQo
Y2xpZW50KTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2Nlc3NQZW5kaW5nUmVxdWVzdCgp
Cit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHdo
aWxlICghbV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpICYmICFjdXJyZW50Q2xpZW50KCkpCisg
ICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKS5w
dHIoKTsKKworICAgIGlmIChjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6U3BlZWNoUmVjb2duaXRpb25TdGFydChtX2N1cnJlbnRSZXF1ZXN0
LT5kYXRhKCkpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNv
bXBsZXRlQ3VycmVudFJlcXVlc3QoT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJy
b3IpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoYXV0byogY2xpZW50ID0gY3VycmVudENsaWVudCgpKQorICAgICAgICBjbGllbnQtPmRp
ZEVuZChlcnJvcik7CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAoIW1f
Y3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlIHJlY2VpdmVzIHVwZGF0ZSB3aGVuIG5vdCBw
cm9jZXNzaW5nIHJlcXVlc3RzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGVUeXBlOjpFbmQpIHsKKyAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCh1
cGRhdGUub3B0aW9uYWxFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8qIGNsaWVudCA9IGN1cnJlbnRDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZVR5cGU6OlN0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgaWYgKHR5cGUg
PT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpCisgICAg
ICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgIGlmICh0eXBlID09IFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KQorICAgICAgICBj
bGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpCisgICAgICAgIGNsaWVu
dC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoRW5kKQorICAgICAgICBjbGllbnQtPmRp
ZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlVHlwZTo6U291bmRFbmQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZVR5cGU6OkF1ZGlvRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdB
dWRpbygpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVU
eXBlOjpOb01hdGNoKQorICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgaWYg
KHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlJlc3VsdCkgewor
ICAgICAgICBBU1NFUlQodXBkYXRlLm9wdGlvbmFsUmVzdWx0cygpKTsKKyAgICAgICAgY2xpZW50
LT5kaWRSZWNlaXZlUmVzdWx0KCp1cGRhdGUub3B0aW9uYWxSZXN1bHRzKCkpOworICAgIH0KK30K
KworU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6Y3VycmVudENsaWVudCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFlOWI2MTk5OTg5
ZWE3NDY3MjJkN2RmYzY4YzkxOTA5Y2Y4ZTlkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU3BlZWNoUmVjb2du
aXRpb25FcnJvcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24gZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciwg
cHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNyZWF0ZSgpOwor
Citwcml2YXRlOgorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgorICAgIHZvaWQg
c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsg
fQorCisgICAgdm9pZCBwcm9jZXNzUGVuZGluZ1JlcXVlc3QoKTsKKyAgICB2b2lkIGNvbXBsZXRl
Q3VycmVudFJlcXVlc3QoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4p
OworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCBwcm9ncmVzc0RpZFVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlJik7CisKKyAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCogY3VycmVudENsaWVudCgpOworCisgICAgRGVxdWU8
UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3Rz
OworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVu
dFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzUz
YjQ2NTFkZmYwMDQ5OTVhZTcwNjNjZWE5Y2FmOTJjZTQzYzI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIpOworfQorCitXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbigpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbiA9
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4g
Km1fY29ubmVjdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNjN2Zi
YmUwODZlYjUzMWNlMTc3ZDRmM2UxMjZjZmFiM2ViYTYzMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4gY3JlYXRlKCk7CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
JiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBX
ZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIFJlZlB0cjxXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBiM2E4MTUwOGQ0MTg0NmVhMmU5YWJlOWE2MzlhYTdiMWM0
ODk2M2QwLi5mOTBlZTRkZDNmNjYyOGI4YWFmNGZmMzE0Yjc4MGE4OGMzNDE4YWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEy
Nyw4IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyOCwxMCBAQCBXZWJQYWdl
OjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ciA9ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCk7
CisjZW5kaWYKKyAgICAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudD4oKnRoaXMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZGZhNTdjNjU1YWRhN2NmOTcxODliNzU3YzU5YWE5MDE5NTBhYTll
OC4uMDQ3YzJhYTBjODhiMjBhNmRjOGNlNTEyOGNjMGRkMzhmMDc5M2IzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNp
bmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMjQ1LDYgKzI0Niw3IEBAIFdlYlByb2Nlc3M6Oldl
YlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3dlYlNRTGl0ZURh
dGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykgeyBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldElz
SG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYK
KyAgICAsIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXZWJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOjpjcmVhdGUoKSkKIHsKICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJh
dGVnaWVzLgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTg5NDhlOTE3Y2UyOTU0N2U0ZTAxN2Ex
NWU0YTIwMGRmMTM5ODE3My4uMDVkYTUzMmNmMjUwY2FhZjg1N2U2OTBiMGNlOGQ5ODNkZTc1MDc1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMjUsNiArMTI1LDcg
QEAgY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBh
Z2U7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczsKQEAgLTM1
OCw2ICszNTksMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3lu
Y2hyb25vdXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgeyByZXR1cm4gbV9zcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmdldCgpOyB9CisjZW5kaWYKKyAgICAKIHByaXZhdGU6CiAgICAgV2ViUHJv
Y2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiArNjk4LDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5
U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisgICAgUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBlYmE1ZGE4MDFhMjdmZjk5YjA2NzcxMDM1MWVi
MjQ2OGZhNjk0MDBiLi43ZWM1MDQ2NDUzNzM1YzI1MjIzMmQyNzE1ODQ0ZTg0ODdhN2MyNTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksNyBAQAogI2RlZmluZSBXZWJLaXRN
ZWRpYVJlY29yZGVyRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZWRpYVJlY29yZGVyRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVz
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWQiCiAKIC8vIFRoZSBwcmVmZXJlbmNlIGtleXMgYmVsb3cgdGhpcyBwb2ludCBhcmUg
ZGVwcmVjYXRlZCBhbmQgaGF2ZSBubyBlZmZlY3QuIFRoZXkgc2hvdWxkCiAvLyBiZSByZW1vdmVk
IHdoZW4gaXQgaXMgY29uc2lkZXJlZCBzYWZlIHRvIGRvIHNvLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMmE3ZThlNGI3ZTQ1
NDIxYzYwZTY1NjY0N2JjMzNhZjhiNjcyZTdlOC4uYTEwODM4Y2U5MWZiNTY2NmU5MzgxNmFlZTA1
ZTAyYzNiMGJkMDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMzc1LDYgKzMzNzUsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpc3BlZWNoUmVjb2duaXRpb25FbmFibGVkCit7CisgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZU9ic29sZXRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKaW5kZXggOWJjMTBjYTcyNTEwMzU3YjdkZjZkYzVmYTE2NGY4YTc4MDk4YjAwOS4u
NjY3Y2M3NzE1Mzk2OWU5NTc0OTc4NzUwOGZkOTE5ZjQ4ZGY5MjNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC0zNDgsNiArMzQ4LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hl
TW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhUmVjb3JkZXJFbmFibGVkOikgQk9PTCBfbWVkaWFS
ZWNvcmRlckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NJbmRpdmlkdWFs
VHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBj
b250YWN0UGlja2VyQVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAo
V2ViUHJpdmF0ZURlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNzhlOTcyY2Q3N2FmNGE5Y2RkYWEwNzlmYTYxZTRhMGEwNWMwMWE2
Yy4uMmQ5ZGU0MjQyNDNlNGQ4OWM4Mzg2OTIwOTQ1N2QyNjI4OGQ3Nzg3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAz
NTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1
cmVzKToKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgor
CiAyMDIwLTEwLTE4ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IHdlYmtpdGNvcmVweTogQWxsb3cgb25lIHBhY2thZ2UgdG8gcmVxdWlyZSBhbm90aGVyIHBhY2th
Z2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IDg3OGI2MmFhNTFiNDExYzA3MmY1
Njc4MjE0NGM3NGVjOGI3ZjZkOTYuLjY4NzQ3MzhkZjk5ZmQ3NWNkZTUxMDQyMTI2ODgxNWQwZTAz
Y2RkZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNjksNiArNjksNyBAQCBz
dHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsg
ZmFsc2UgfTsKICAgICBib29sIGVuYWJsZURyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViU1FMIHsgdHJ1ZSB9OworICAgIGJvb2wgZW5hYmxlU3Bl
ZWNoUmVjb2duaXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBsYXllckJhY2tlZFdlYlZpZXcgeyBm
YWxzZSB9OwogICAgIGJvb2wgdXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07CiAgICAgc3Rk
OjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggN2JhOTA4M2VmMTNlOTExMDI2OTU5ZmRj
NTRmMDRmZTAxNTZiZDA0Ni4uYjI4N2U5MDhkZTRmZDNiMWQ3YTRkZmRhOTY1YmJiZjlkZTE3YTBk
YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODQx
LDYgKzg0MSw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlBy
ZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldFNwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4K
QEAgLTk2Myw2ICs5NjQsOCBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJTUUxFbmFibGVkOllFU107
CiAKKyAgICBbcHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOllFU107CisK
ICAgICBbV2ViUHJlZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtX
ZWJQcmVmZXJlbmNlcyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0
UG9saWN5Ok5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
XTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBiMzlmZjY5Mzg2YzMwN2MwMjU2YTQzZWVmM2ZlMDM1NWYyMjM5YTcwLi40
MDhjODFiMDJmY2NmOTdlOWRiYjgxMjAxZmJiMDExNTA5Njc4OTZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHNwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbDogQWRkZWQuCisK
IDIwMjAtMTAtMTggIEVtaWxpbyBDb2JvcyDDgWx2YXJleiAgPGVtaWxpb0BjcmlzYWwuaW8+CiAK
ICAgICAgICAgU2VyaWFsaXplIGFzcGVjdCByYXRpbyB3aXRoIHNwYWNlcyBhcm91bmQgdGhlIHNs
YXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmRhZTM3MmM4MDkxMTdkMjZhYjY4YTA0OGExMzJl
ODQxYzE1M2Q1Yi4uNjJkN2RhYWU0YjY3YmMxYzIxZWEwNWFkZWI4YmEwZGYzNzBiY2RiNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03Niw2ICs3Niw3IEBAIGVkaXRpbmcvcGFzdGVib2FyZC9kb20t
cGFzdGUgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBTa2lwIF0KIGZhc3QvbWVk
aWEvaW9zIFsgU2tpcCBdCiBmYXN0L2RvbS9SYW5nZS9tYWMgWyBTa2lwIF0KK3NwZWVjaCBbIFNr
aXAgXQogCiAjIFJlcXVpcmVzIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZwogY29tcG9zaXRpbmcv
c2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xsIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjMWZjZWY1YTA3ODAzMDljMDVmOGY2MmM4
ZTFkNjNjNDdjODE0YTUuLmFlY2QyNjhlYjdkNTYxNmM5ZWRlMzQxYzhiYWUyYWUzOTY4OWRkYzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNCw2ICsz
NCw4IEBAIGh0dHAvdGVzdHMvZ3ppcC1jb250ZW50LWVuY29kaW5nIFsgUGFzcyBdCiAKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9kb2N1bWVudC1sZXZlbC10b3Vj
aG1vdmUtZXZlbnQtbGlzdGVuZXItcGFzc2l2ZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIAor
c3BlZWNoIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMg
RW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBiMzhkMzQwZGE0ZTAxNDExMTBhYWUwYzliYmEyZWMzZmUzN2U2NGEyLi44ZWE0YTgzNjJi
NTgxNDFkNGE1MWMyYjAxZGFmODdhZmUzZjQ1ZDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3ZWJraXQub3JnL2IvMTgxOTY0
IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUtemVyby13aWR0aC1qb2luZXIu
aHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK3NwZWVjaCBbIFBhc3MgXQorCiAj
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZp
YyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWJiY2I4NjNhYjY4Nzg4MjJmOTNiN2YyNGNkY2U3Y2Q5MWJmNTJmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1h
cGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbiA9
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIGlzIGRlZmluZWQuCitQQVNTIHNwZWVjaFJlY29nbml0
aW9uLmxhbmcgaXMgZGVmaW5lZC4KK1BBU1Mgc3BlZWNoUmVjb2duaXRpb24uY29udGludW91cyBp
cyBkZWZpbmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyBpcyBkZWZp
bmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgaXMgZGVmaW5lZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTWFrZSBz
dXJlIFNwZWVjaFJlY29nbml0b24gQVBJIGV4aXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbCBiL0xheW91dFRlc3RzL3NwZWVjaC9z
cGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmU5OTU3ZDZjODc4YTZlNzc3
N2U3YzJjNWI3ZjRmOGY3Mzc0Y2UxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Bl
ZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJz
cGVlY2hSZWNvZ25pdGlvbi5sYW5nIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNv
Z25pdGlvbi5jb250aW51b3VzIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNvZ25p
dGlvbi5pbnRlcmltUmVzdWx0cyIpOworICAgIHNob3VsZEJlRGVmaW5lZCgic3BlZWNoUmVjb2du
aXRpb24ubWF4QWx0ZXJuYXRpdmVzIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxwPk1ha2Ugc3VyZSBTcGVlY2hSZWNv
Z25pdG9uIEFQSSBleGlzdHMuPC9wPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411754</attachid>
            <date>2020-10-19 09:42:04 -0700</date>
            <delta_ts>2020-10-19 11:01:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201019094203.patch</filename>
            <type>text/plain</type>
            <size>163565</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdhYWI1ZGEzOTI3YmUyZWExZDhkMTM4
MGY5YmU0ZDEwYmE5MmZjN2MuLjk4NjljOWNiYWJlMTM1ZTM4MGFlOGUwNmVjYTYyNzQxZjViNGM5
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oOgorCiAyMDIwLTEwLTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IC1XZGVwcmVjYXRlZC1jb3B5IHdhcm5pbmdzIGluIFdURiBhbmQgSmF2YVNj
cmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMjA4ZmI5OTEyNzM2Y2U1MmUyMTNjYmY4OTIxZjUxZDA5
M2NkMWQwLi45N2Y4NjFiYmQyM2Y3NDBjZTlkNzAwYjcyNDcwZDkxOTVkYzNlZTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTI4IEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9z
cGVlY2gtYXBpLyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAgICAgVGVzdDogc3BlZWNoL3Nw
ZWVjaHJlY29nbml0aW9uLWFwaS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
On5TcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRS
ZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJl
Y29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJl
Y29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJp
bmdBdWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRD
YXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlk
U3RhcnRDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2gpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpkaWRGaW5kTm9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRSZWNlaXZlUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpj
b250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpz
ZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjppbnRl
cmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvcjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uRXJyb3I6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6ZXZl
bnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZTo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGU6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGU6OnJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZTo6dHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlOjpvcHRpb25hbEVycm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6Om9wdGlvbmFsUmVzdWx0cyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dDo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q6OmRhdGEgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVy
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjpkZWNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjpkZWNv
ZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBk
b20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oOgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGFnZS9TcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1NwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaDogQWRkZWQuCisKIDIwMjAtMTAtMTggIEpvb25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlbW92ZSB0aGUgZHVwbGljYXRlZCBJ
R05PUkVfV0FSTklOR1NfQkVHSU4oImZyYW1lLWFkZHJlc3MiKSBjYWxscyBmcm9tIHIyNjg2NjEu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGMzOGUwZGE0ZTU0MzVhYmVkNDZlNTM1ZTJlZmY3ODdkN2Q1NTU4OTYuLmZl
ODYxNjEyZTFjNDFhYzQ2NDAzZTRmYWVhOWFkMTBiN2QxZDc4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNwZWVjaFJlY29n
bml0aW9uU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNwZWVjaFJl
Y29nbml0aW9uU3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3BlZWNo
UmVjb2duaXRpb25BYm9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpyZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cHJv
Y2Vzc1BlbmRpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9ncmVzc0RpZFVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENsaWVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBw
Qm91bmREb21haW5zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjptX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyKToKKwogMjAyMC0xMC0xOCAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIHNsdWdnaXNoIHBh
Z2Ugc2Nyb2xsaW5nIGZvciB3aGVlbCBldmVudHMgc2luY2UgcjI2ODQ5OQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IDU1M2MwNGE3MzdjM2Q3MWE5OGI2YTI1MTRkOGFmNTQwMjQ5MzY0
OTguLmQ2NTQ5Y2Y1Njk2NTY5M2FiMWZiY2I5ZWRlZTdlODQzNGFjMWVmOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJl
Y29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgor
ICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRdKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOl0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIwMjAtMTAtMTcg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjU0MzApOiBGaXggLVdzdHJpbmctY29uY2F0ZW5hdGlvbiB3YXJuaW5nIGZyb20gb3BlbiBz
b3VyY2UgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWZhNmVkOTAxMTc4
N2FmYWVkNDU2ZjRkZTc4MzI4OWU0ZTdlNmU4NC4uMDIwYTE0NjUyNTgwNDliNzJjNjgzYjVjMjQz
ZjNhNjQ3MTM2MjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTcyOCw2ICs3
MjgsMTggQEAgU2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50
TG9hZE9yRmlyc3RQYWludDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitT
cGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJTcGVlY2hSZWNvZ25pdGlvbiBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBTcGVlY2hSZWNvZ25pdGlvbiBmcm9tIFdlYlNwZWVjaCBBUEkiCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktp
dDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisKICMgRklYTUU6IFRoaXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxf
RkVBVFVSRVMpIGlzIHRydWUgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIg
dXNpbmcgdGhhdCBmb3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBTcHJpbmdUaW1pbmdGdW5jdGlv
bkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApp
bmRleCA5M2ZhZmRhMTE0Yzk5MmI2NDMwOTVkMWIyYjk3NDY0MmYzNjg4Y2IwLi5kYTk2ZGVmOTk3
ODgwZGY0YjU5ODhjZDM2OWVhNmE5NTQwOWJmZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oCkBAIC00MjEsNiArNDIxLDEwIEBACiAjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1JF
Q09HTklUSU9OKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9TUEVF
Q0hfUkVDT0dOSVRJT04gMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUykgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfU1BFRUNI
X1NZTlRIRVNJUyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmYxMzYzNzFkODlh
YmJkOTZkZmFkYmZmMjEzYjdmNzc3OGQxNjIzYS4uMTYwNzdkZTY4MjE4MDYzODY3ZWIyZjhjNDI3
OTllNTNmMjI0OTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzNiw2ICs0MzYsMTQgQEAg
c2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNr
L1JlbW90ZVBsYXliYWNrLmlkbAogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxh
eWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCisgICAgTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRl
eCA3YTQ1NDFkMTdmZWIzZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi4wMjNhOWRmY2QzNjNk
MmZkNmY1ZDAxZDQ2Y2QxNjM2MjZmNDVjOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsyNzksMTMgQEAgJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3RhLmlkbAogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVtZW50K1JlbW90
ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1v
dGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNp
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCBlOTQ3MjkwNjIyMDg5MWFjZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi5mMDk0YmY5NmRmMjg1
ZTlmNzU3YTM0M2M5NGJmZjUxYzE4NmUyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjExMCw2ICsyMTEwLDIwIEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VC
dWZmZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
b3VyY2VCdWZmZXJMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIz
MGM1N2U2OWIxMzYuLmI4YzgyZjhiZDM3ZjhkMDk0ODc1MjMwMzIwOTk4Yjc5NDhhM2Y1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzA2LDYgKzMwNiwxMyBAQCBKU19CSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXNFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNWb2ljZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBkNDYyM2EyNzVjODg3NzNlNzE2NGYyNTk1ZTBhNjE1YjNiN2Yx
NzUxLi4wYzY2NjM0MWMyNzVjYmEyMzRiMTQ1NWQzZjQ5MDMyNDJmYjc3YTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTExMCw2ICsxMTAsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKICAgICBN
b2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKIAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaAorCiAgICAgTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTAzMjNjYjUyYzljMTI5YzUyNGE2M2ZjYTk1NWVkN2U1NDRlNjg4MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisK
K1JlZjxTcGVlY2hSZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRp
b24oZG9jdW1lbnQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9u
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sK
KyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBhdXRvKiBj
bGllbnQgPSBwYWdlLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKyAgICAgICAgaWYg
KGNsaWVudCkKKyAgICAgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFr
ZVdlYWtQdHIoKmNsaWVudCk7CisgICAgfQorCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisK
K1NwZWVjaFJlY29nbml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGFib3J0KCk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
bikKK3sKKyAgICBhYm9ydCgpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25p
dGlvbjo6c3RhcnRSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6Oklk
bGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29n
bml0aW9uIGlzIGJlaW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBp
ZiAobV9zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLT5zdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50
ZXJpbVJlc3VsdHMsIG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6
U3RhcnRpbmc7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6
c3RvcFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcg
JiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29n
bml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQor
ICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwaW5nOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjphYm9ydFJlY29nbml0aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRp
bmcgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJl
Y29nbml0aW9uIGlzIGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
KQorICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOwor
CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGluZzsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkU3RhcnQoKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKyAgICBk
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50
OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNo
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbjo6ZGlkRmluZE5vTWF0Y2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2du
aXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIp
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKE9wdGlvbmFsPFNwZWVjaFJl
Y29nbml0aW9uRXJyb3I+IGVycm9yKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SWRsZTsKKyAg
ICBtX2ZpbmFsUmVzdWx0cy5jbGVhcigpOworCisgICAgaWYgKGVycm9yKQorICAgICAgICBkaXNw
YXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBlcnJvci52YWx1ZSgpLnR5cGUsIGVycm9yLnZhbHVlKCkubWVzc2FnZSkp
OworICAgIGVsc2UKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5lbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVj
dG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBW
ZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxS
ZXN1bHRzLnJlc2VydmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRh
cy5zaXplKCkpOworICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsK
KworICAgIHVpbnQ2NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsK
KyAgICBmb3IgKGF1dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAg
ICAgZm9yIChhdXRvIGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQor
ICAgICAgICAgICAgYWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlOjpjcmVhdGUoV1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0
aXZlRGF0YS5jb25maWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEu
aXNGaW5hbCk7CisgICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAg
IG1fZmluYWxSZXN1bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5h
bFJlc3VsdEluZGV4OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1v
dmUobmV3UmVzdWx0KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlz
cGF0Y2hFdmVudChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJl
c3VsdEV2ZW50LCBub25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0
KCkpKSk7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjOTFhYmEyNGVk
ZWQ0NTMxMmE5OTEyODBmNTFlMTQ5OGJkYjc4NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09H
TklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50
OworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7Cisg
ICAgflNwZWVjaFJlY29nbml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25z
dCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5n
KSB7IG1fbGFuZyA9IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGludW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVv
dXMpIHsgbV9jb250aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVz
dWx0cygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldElu
dGVyaW1SZXN1bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGlu
dGVyaW1SZXN1bHRzOyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7
IHJldHVybiBtX21heEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVz
KHVuc2lnbmVkIG1heEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVy
bmF0aXZlczsgfQorCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvZ25pdGlvbigpOwor
ICAgIHZvaWQgc3RvcFJlY29nbml0aW9uKCk7CisgICAgdm9pZCBhYm9ydFJlY29nbml0aW9uKCk7
CisKKyAgICAvLyBUT0RPOiBtYWtlIHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAg
ICB2b2lkIGRpZFN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlv
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdGFydENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENh
cHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEZpbmROb01hdGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gPSBXVEY6Om51bGxvcHQpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3VsdChWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmKSBmaW5hbDsK
KworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJl
ZjsKKworcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgU3RhcnRpbmcs
CisgICAgICAgIFJ1bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywK
KyAgICAgICAgSWRsZSwKKyAgICB9OworICAgIFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7
CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3Q7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOwor
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAg
dm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICBTdGF0ZSBt
X3N0YXRlIHsgU3RhdGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNpZGUgZGVmYXVsdCBsYW5n
dWFnZS4KKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1f
bWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uPiBtX3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKworICAgIFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkMDNhNjUyNzA0MjIy
ZTk5YWMyMDE3ZmIwNjY5NWViNzMxMTFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBDb25kaXRpb25hbD1T
UEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlv
biwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb24gewor
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoKTsKKworICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFuZzsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb250aW51b3VzOworICAgIGF0
dHJpYnV0ZSBib29sZWFuIGludGVyaW1SZXN1bHRzOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIG1heEFsdGVybmF0aXZlczsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgSW1wbGVtZW50
ZWRBcz1zdGFydFJlY29nbml0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICBbSW1wbGVtZW50
ZWRBcz1zdG9wUmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdG9wKCk7CisgICAgW0ltcGxlbWVudGVk
QXM9YWJvcnRSZWNvZ25pdGlvbl0gdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
c291bmRzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7Cisg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlv
ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVy
cm9yOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjE1ODQzODZmNGVkYzFlZTE5ZDEwMWJkYjg2ZjhmOGJmZWI4YjNiOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0
cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0
KSwgY29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25m
aWRlbmNlKQorICAgIDogbV90cmFuc2NyaXB0KHRyYW5zY3JpcHQpCisgICAgLCBtX2NvbmZpZGVu
Y2UoY29uZmlkZW5jZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmM2MGUxMjQ3ZGYwNTJmYzQyZTJk
NWM5NDQ4MGNmZjg0MGI2ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4geworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBjcmVhdGUoU3Ry
aW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIHRyYW5z
Y3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAgICBkb3VibGUgY29uZmlk
ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwg
ZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFl
YWE0M2Q0Nzk2ZGQ5ODM3YmVjOWQyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ2NWEwYzhjZTNl
NjdmY2Y0M2MwNmI4MjJlNDA0YWQ5MGE3Zjc3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsx
LDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAgICBO
b1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAor
ICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwK
KyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5n
IG1lc3NhZ2U7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9u
RXJyb3I+IFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LnR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubWVzc2FnZSkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAor
ICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RB
bGxvd2VkLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFk
R3JhbW1hciwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxh
bmd1YWdlTm90U3VwcG9ydGVkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMmI5YzE0ZjVjNTlmNTExOTEw
MTE1OTM3NmQ0ZjJhYTFhNDY0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVkYTkwYWRh
N2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
XSBlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAg
ICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAi
bm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1t
YXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUwNjVmYmVi
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Ojpj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVk
IGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQu
ZXJyb3IpCisgICAgLCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVz
c2FnZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWZmZjFj
ZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworcHVi
bGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgIH07CisK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7Cisg
ICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7
IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1fZXJyb3I7
CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2MjY1ZDNj
OTdhNGQ0YzE5MGU3M2Q4NTc4YmUwMjlkNDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCk7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25hcnkgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1lc3NhZ2Ug
PSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEyMTdlNzE1
MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5pdCwgaXNU
cnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0
SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIHJl
c3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3Qg
SW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQs
IGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkKKyAgICAs
IG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6
OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3Qg
cmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0
cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5j
ZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jl
c3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVj
b2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2FmYTYyNDY3
MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJ
T04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25F
dmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3Bl
ZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCBy
ZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAg
ICB1aW50NjRfdCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0K
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVy
biBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRl
eCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWludDY0X3Qg
bV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBt
X3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NDhjM2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJkMzQzMTFj
MThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3Ry
dWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVz
dWx0czsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVu
dEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVk
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NlNTMwYWYxMGY3MTY5NmUxOTJmYWYxODA5
ZjFlYmNhYmJhMDI1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnVwZGF0ZShTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlIHsgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmVycm9yKGNvbnN0IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUgdXBkYXRlIHsgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkVycm9yIH07CisgICAgdXBkYXRlLm1fZXJyb3IgPSB7IGVycm9yIH07CisgICAgcmV0dXJuIHVw
ZGF0ZTsKK30KKworU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlOjpyZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4mIHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZSB1cGRhdGUgeyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0
IH07CisgICAgdXBkYXRlLm1fcmVzdWx0cyA9IHsgcmVzdWx0cyB9OworICAgIHJldHVybiB1cGRh
dGU7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OlNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgdHlw
ZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MWVmNWVi
YTBlYzg2ODc1MGFlODQ3MmZmZTA1MDU2ZDgyZTRmMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNz
IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlIHsKKyAgICBJbnZhbGlkLAorICAg
IFN0YXJ0LAorICAgIEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFy
dCwKKyAgICBTcGVlY2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVz
dWx0LAorICAgIE5vTWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kLAorfTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgdXBkYXRlKFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGVUeXBlKTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZSBlcnJvcihjb25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25FcnJvcj4gb3B0aW9uYWxFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJy
b3I7IH0KKyAgICBPcHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4g
b3B0aW9uYWxSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzOyB9CisKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlVHlwZSk7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSBt
X3R5cGU7CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gbV9lcnJvcjsKKyAg
ICBPcHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gbV9yZXN1bHRz
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBtX3R5cGUgPDwgbV9lcnJvciA8PCBtX3Jlc3VsdHM7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+IFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpJbnZhbGlkKTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3R5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9lcnJvcikpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jlc3VsdHMpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRl
VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6SW52YWxpZCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9TdGFy
dCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OlNvdW5kU3RhcnQsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGVUeXBlOjpTcGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpSZXN1bHQsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpOb01h
dGNoLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlw
ZTo6RXJyb3IsCisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlOjpFbmQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmNDJkZjVmNmZlYjQ4ZWUxMTFhZTU3ZTJl
NTY0YjUwMWQ5ZTBhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCwgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVp
bnQ2NF90IG1heEFsdGVybmF0aXZlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVz
dWx0cywgbWF4QWx0ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQs
IGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRz
LCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihj
bGllbnQpKQorICAgICwgbV9kYXRhKFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgeyBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBsYW5nLCBjb250aW51
b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH0pCit7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OGY3
MjA3OTQ4ZjNjYzRhMDk2MTJiMTkyNTUwNTZjODczNzBjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApA
QCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVl
Y2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
LmdldCgpOyB9CisgICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSYgZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywg
Ym9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5h
dGl2ZXMpOworCisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4gbV9jbGllbnQ7
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSBtX2RhdGE7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxYTM4MjU2ZGQyMzk0ZDU2YTFhMWMzMDJlZDU2YmYxZDVlOWMzNTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIgorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSB7CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SWRlbnRpZmllciBpZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wg
Y29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07
CisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRh
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBpZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8
PCBpbnRlcmltUmVzdWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5pZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91cykp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5pbnRlcmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNGM1YmQ1MjIyMzIzMWFjY2I3MDM1MWNmYTJiZTRlNzNiMDc0NDAz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2VudW0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcg
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworCit9CisKKyNlbmRpZiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNj
N2Y0ZjAwOTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBp
c0ZpbmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0KFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6
IG1fYWx0ZXJuYXRpdmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChp
c0ZpbmFsKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4g
KGluZGV4IDwgbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5w
dHIoKSA6IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZk
MWRkYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNl
IH07Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRl
M2E4MWU0NTJlMmJjNTUxMzZkYTg3NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1X
aW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTEyODhlMDYwYTFmMzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJp
bmcgdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZURhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVE
YXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7
CisgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2
ZXM7CisgICAgYm9vbCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNv
ZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuYWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjViOWU3YTA2MDVmMWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6
Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlz
dC5zaXplKCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJl
c3VsdCkKK3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RG
TW92ZShsaXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4
MjYwNjZmZWU5NjU0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0
aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVt
KHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Jik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkg
PSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEw
ZTRiZDczMTFkYjgyOGIzZjIwZjlhNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05J
VElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93
CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDljODg3
NTFlM2M2ODA2NDFkZDNkMGI0NjNhNTg1Zjg1OWIwOWMyNzMuLmZkNWM0NDkxNDAxZDIzZDIxY2Nj
MGFmOTUzOThkM2U5NDk5NGJhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAK
IG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MWM1ODc5ODVlNDA5Y2ViMjEzMWI4
OGExY2M0YmY3Y2E3ZjVjM2VkLi5hYzQyMmI4ODA5NmVlMTE1OGNjOGIxMzY3ODEwNzUwY2EwYmZh
YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTgxLDYgKzE4MSwxNCBAQCBNb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVp
bnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3Bw
CitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQu
Y3BwCkBAIC0zNDg4LDYgKzM0OTYsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBKU1Nsb3RhYmxlLmNw
cAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCitKU1NwZWVjaFJl
Y29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorSlNTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogSlNTcGVlY2hTeW50
aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2Y3NTllNjM3ODVmNTNkNDg4ZjY3M2E0YTdkMDg0ODZhOWNmNWY0
ZS4uMTdhYzViZjUyMjNjOWU1MTgxYTAxMmE4ZGJlMmZhZjYyNmNkYWJjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjcyOSw2
ICsyNzI5LDIyIEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4
MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZG
OSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5
NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1MENFMjUz
OTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTBD
RjI1Mzk0MzY4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjIyNTM5NDM0ODAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oICovOyB9OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggKi87IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oICovOyB9OworCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICov
OyB9OworCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQ5NTBCMDI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUw
RDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OworCQk5MzQ5
NTBENzI1Mzk0M0JCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCNTI1Mzk0MzRB
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRDgyNTM5NDNDMzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwREIyNTM5NDNFNDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTBEOTI1Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
MzQ5NTBEQzI1Mzk0M0U2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBEQTI1
Mzk0M0UyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTEyNTNBNTlB
NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MERGMjUzQTU5QTYw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTgyNTNDRUE4
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlw
dFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87IH07
CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3
MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEzQzBE
NUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBS
ZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTI0NSw2ICsxMTI2MSwzNyBAQAogCQk5MzQ0MkM5RDBEMkIzMzVDMDAz
MzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTA3
RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjEy
NTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEIy
MjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI1MjUzOTQzNEEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEI2MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI4
MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQzI1Mzk0
MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkYyNTM5NDM1MDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMjI1Mzk0MzUxMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5NDM1MjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MERBMjUzOTQz
RTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MERGMjUzQTU5QTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3RJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwRTcyNTNDRUE4QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBB
NjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRTb3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NEY3MTM3MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1
QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4MjMsNiArMjE4NzAsOSBAQAogCQkJCTVD
N0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNE
RTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2
Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTM0
OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJ
CQkJOTM0OTUwREEyNTM5NDNFMjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oICovLAorCQkJCTkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5
bnRoZXNpc0NsaWVudC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNw
ZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3Vz
cGVuZGFibGVUaW1lci5oICovLApAQCAtMjUzNDEsNiArMjUzOTEsMzQgQEAKIAkJCQlBQTJBNUFC
QTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJ
CQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5j
cHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5oICovLAorCQkJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmggKi8sCisJCQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmlkbCAqLywKKwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1
Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJ
CQkJOTM0OTUwQjIyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAq
LywKKwkJCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCAqLywKKwkJCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsICovLAorCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBC
QTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywK
KwkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5j
cHAgKi8sCisJCQkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FdmVudC5pZGwgKi8sCisJCQkJOTM0OTUwQzIyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwICovLAorCQkJCTkzNDk1MEIzMjUzOTQzNDkw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggKi8sCisJCQkJOTM0
OTUwQjYyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8s
CisJCQkJOTM0OTUwQjUyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovLAorCQkJCTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3REYXRhLmggKi8sCisJCQkJOTM0OTUwREYyNTNBNTlBNjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCAqLywKKwkJCQk5MzQ5NTBCRjI1Mzk0MzUw
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MEMx
MjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkz
NDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8s
CisJCQkJOTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovLAorCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFC
RDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFC
RTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYx
NkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDAxNSw2ICsz
NDA5MywyMiBAQAogCQkJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGlj
LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VT
cGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRDI1Mzk0
MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
NDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEQjI1Mzk0M0U0MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MERDMjUzOTQzRTYwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MENGMjUzOTQzNjgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRTgyNTNDRUE4
QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNDk1MEQ3MjUzOTQzQkIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ4MjUzOTQzQzMwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBFMTI1M0E1
OUE2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBB
MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3
MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLmNmMmQ5ZWZkMzcxZWZhZThh
ODBjZDY3YzI5ZDQ2NjhhOWE3MDBhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzOCw2ICsyMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSBcCiAgICAgbWFj
cm8oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbikgXAogICAgIG1hY3JvKFNoYWRvd1Jvb3QpIFwK
KyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbikgXAogICAgIG1hY3JvKFN0YXRpY1JhbmdlKSBc
CiAgICAgbWFjcm8oU3RlcmVvUGFubmVyTm9kZSkgXAogICAgIG1hY3JvKFN0eWxlUHJvcGVydHlN
YXBSZWFkT25seSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5
NjBhNzM3ZmJlMjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1
M2RlYjdlMmQ3YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBA
QCBSVENEYXRhQ2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hh
bmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBj
b25kaXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04K
K1NwZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBT
cGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENv
bnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4
OTAyZDNlN2QzMzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0
LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VS
CiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBT
b3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNv
bmRpdGlvbmFsPU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BF
RUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BF
RUNIX1NZTlRIRVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUg
Y29uZGl0aW9uYWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkzMmFjYmJiMTIyNzBi
ZGZhMjY4OWQ3YzIwNzc5NDgxOWU2NzkuLmE2NDkwYTkwNDJlMjg4NjBhN2MyOTkwZTkxM2M1NDEy
OWU2YTgxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2Nr
ZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI0OCw2ICsyNDksOSBAQCBQ
YWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5B
QkxFKFdFQkdMKQogICAgICwgbV93ZWJHTFN0YXRlVHJhY2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICNlbmRpZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisgICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKKyNlbmRpZgogI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCkBA
IC0zMzk5LDQgKzM0MDMsMTQgQEAgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKICAgICByZXR1cm4gdHM7CiB9
CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uKiBQYWdlOjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBjb25zdAoreworICAg
IGlmICghbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiAmbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFh
ZDUuLjY2YTI2YjQwOTRiOGVjN2VhZDA2YzhmNTFiMmNjZTY5NjkwNDVhYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC0xMzYsNiArMTM2LDggQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFz
cyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpA
QCAtNzcwLDYgKzc3MiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdM
U3RhdGVUcmFja2VyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3Q7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudCogc3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVl
Y2hTeW50aGVzaXNDbGllbnQuZ2V0KCk7IH0KICNlbmRpZgpAQCAtOTA1LDYgKzkxMSwxMCBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gbV93ZWJHTFN0
YXRlVHJhY2tlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAg
ICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOworI2VuZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVu
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYy
ODQ4ODI2YTZiMDBkZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmRjZmI5NzI4ZTJhM2Y1ODdi
YjdhMzAzZGUzYzJmNWFjZDFiMDc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwog
Y2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwog
Y2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
OwogY2xhc3MgU3BlZWNoU3ludGhlc2lzQ2xpZW50OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CkBAIC0xMTIsNiArMTEzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJHTCkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2VyOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBSZWZQdHI8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyNlbmRpZgogI2lm
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50
aGVzaXNDbGllbnQ+IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYzE4ZTFlM2IwMWE2M2M3
YzgwY2RhNGNiNzU0NGVhMWM1ZWVjOTA0Li5iYzYxZjlhOWE5MDk3NWU1OGU1M2VmY2Q1M2U2MTAy
Y2Q4Njk0YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaApAQCAtMjUyLDYgKzI1MiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNhYmxlTWVkaWFF
eHBlcmllbmNlUElESW5oZXJpdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVNZWRpYUV4
cGVyaWVuY2VQSURJbmhlcml0YW5jZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorICAgIHZvaWQgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IG1fc3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAg
Ym9vbCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5z
dGFudGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpOwpAQCAtMzc4LDYgKzM4Mywx
MCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhYmxlTWVkaWFFeHBlcmllbmNlUElESW5oZXJp
dGFuY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorICAgIGJvb2wgbV9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlm
CisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1lRW5hYmxlZEZl
YXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVj
b2duaXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25D
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NGQ1ZTVlOGEzMTFiYzZlMzYxMzEwMmZhNTFiYmRhN2EyM2Vh
ZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkVycm9yLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9u
Q2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RhcnRDYXB0dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0
dXJpbmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3Vu
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kKE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YT4mJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZjc4MjJhNTE3N2ZjY2FkNTYyNjcxOGYxODRjOWFmNGYx
ZDY1YmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24oKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRp
b25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRl
cmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHN0b3AoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGFib3J0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JikgPSAwOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjRlODBlMDEwNjZjNmVmYWRlYTQ2ZjQ5
YzMxMzI1MzI3MjZhZGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBz
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3OTZkYjY5OTZlZWRmZTViN2U5Mjgw
MDEzNzIwNTRjZjY5YzM4MDQ2Li5kZGI0NTM0ZjE3MzI1OTFiNmUzNmI0YzcwNWRhMDJlNzFiZGMx
ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTY1NCw2ICs2NTQsOCBAQCBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
VXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggMTk4NjNmNTYxNmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1ZC4uODQzYTgxMDVlMTgx
YjA1MDExNzNiZGMzYTA5Y2YxMzNlMWY2MTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xODg1LDYgKzE4ODUsMjIgQEAgYm9vbCBXZWJQcm9j
ZXNzUHJveHk6Omhhc1NsZWVwRGlzYWJsZXIoKSBjb25zdAogICAgIHJldHVybiAhbV9zbGVlcERp
c2FibGVycy5pc0VtcHR5KCk7CiB9CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnNwZWVjaFJlY29nbml0aW9uU3RvcCgpCit7Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFib3J0KCkKK3sKK30KKworI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxMWU4NDBhMTk5OGM1N2M2NjEwMmRmOTg3
ZDBmMjY3YTdiMmM2MDQwLi5lNzM2ZDA3NjUwZmUxYTMzMTBkMjRhNjk3MjhhOTY0Y2I4YTdmZjM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDksNiAr
NDksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlz
YWJsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEu
aD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zOTQsNiArMzk1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldElnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICAKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25T
dGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJik7CisgICAg
dm9pZCBzcGVlY2hSZWNvZ25pdGlvblN0b3AoKTsKKyAgICB2b2lkIHNwZWVjaFJlY29nbml0aW9u
QWJvcnQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IGMxNTcwNDczYjBjM2YwY2I3NWM1MjExYzkwYzMyYzVjOTU4NGIyYTIuLjJjZjBlNjRjMjcyNDEy
NGEyMjgxOTYwNmQ1YzE2YmZkYzA5MGViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTg3LDQgKzg3LDEwIEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVh
dGVTbGVlcERpc2FibGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFN0cmluZyByZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNh
YmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBTcGVlY2hSZWNvZ25pdGlvblN0YXJ0KHN0
cnVjdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdCkKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblN0b3AoKQorICAgIFNwZWVjaFJlY29nbml0aW9uQWJvcnQoKQorI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2YmQ5YWM0NWYzMWFjNDNjMmZjMDk2NGFmNWZkZGU0YTc4ZTY4NDg3Li4yMTY3NTk4
YWE5ZDRkMTc5MTk5MWNhMGMxNjM4NzVmZWMzYzdjOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzMsNiArMTM3Myw4IEBACiAJ
CTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzUzMjNBMDdCRjgwMERFRjI4
OSAvKiBXZWJJREJTZXJ2ZXIuaCAqLzsgfTsKIAkJOTMzRTgzNUEyM0ExQUUyODAwREVGMjg5IC8q
IFdlYklEQlNlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVz
c2FnZXMuaCAqLzsgfTsKIAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklEQlNlcnZl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJOTM0OTUwNzQyNTM4QjJDQTAwOTlGMTcxIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oICovOyB9OworCQk5MzQ5NTBFQjI1M0NFQURCMDA5OUYxNzEg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8qIFdlYlNw
ZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5
NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9u
TWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1
MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJ
OTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovOyB9OwpAQCAtNDQ1NCw2ICs0
NDU2LDEwIEBACiAJCTkzM0U4MzU3MjNBMUE4NzIwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCU2VydmVyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNFODM1ODIzQTFBREY1MDBERUYyODkg
LyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzM0U4MzU5MjNBMUFERjUwMERF
RjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQk5MzQ5NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTA3MzI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MEU5MjUzQ0VBRDcwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBFQTI1M0NF
QUQ4MDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBX
S0FjdGlvbk1lbnVJdGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tBY3Rpb25NZW51SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NUVFQjk1MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTAyNCw2ICs5MDMwLDEwIEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2
NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2
NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzNDk1MDczMjUz
OEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAor
CQkJCTkzNDk1MDcyMjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaCAqLywKKwkJCQk5MzQ5NTBFOTI1M0NFQUQ3MDA5OUYxNzEgLyogV2ViU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5jcHAgKi8sCisJCQkJOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8q
IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5Mzgw
MjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJ
QzE0OTM4MEEyMjM4NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8s
CkBAIC0xMTU5NCw2ICsxMTYwNCw4IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8q
IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3NDI1MzhCMkNBMDA5OUYx
NzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzQ5NTBFQjI1M0NFQURCMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRE
NjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhMTJiYjViNDdmMjk2N2VlNTAzMjM5NDZhMjRjNTlm
YjA2YWVmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsx
LDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24+IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24o
KSk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcs
IGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzKQoreworICAgIGF1dG8gcmVxdWVzdCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdDo6Y3JlYXRlKGNsaWVudCwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMs
IG1heEFsdGVybmF0aXZlcyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUo
cmVxdWVzdCkpOworICAgIHByb2Nlc3NQZW5kaW5nUmVxdWVzdCgpOworfQorCit2b2lkIFdlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgYXV0byBw
ZW5kaW5nUmVxdWVzdHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOwor
ICAgIHdoaWxlICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJl
cXVlc3QgPSBwZW5kaW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0
LT5jbGllbnQoKSA9PSAmY2xpZW50KSB7CisgICAgICAgICAgICBjbGllbnQuZGlkRW5kKCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMu
YXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQm
IGNsaWVudCkKK3sKKyAgICBpZiAoY3VycmVudENsaWVudCgpID09ICZjbGllbnQpIHsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTcGVlY2hSZWNvZ25pdGlvblN0b3Ao
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVl
c3RGcm9tQ2xpZW50KGNsaWVudCk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQor
eworICAgIGlmIChjdXJyZW50Q2xpZW50KCkgPT0gJmNsaWVudCkgeworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNwZWVjaFJlY29nbml0aW9uQWJvcnQoKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQo
Y2xpZW50KTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2Nlc3NQZW5kaW5nUmVxdWVzdCgp
Cit7CisgICAgaWYgKG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChtX3BlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHdo
aWxlICghbV9wZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpICYmICFjdXJyZW50Q2xpZW50KCkpCisg
ICAgICAgIG1fY3VycmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKS5w
dHIoKTsKKworICAgIGlmIChjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6U3BlZWNoUmVjb2duaXRpb25TdGFydChtX2N1cnJlbnRSZXF1ZXN0
LT5kYXRhKCkpKTsKK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNv
bXBsZXRlQ3VycmVudFJlcXVlc3QoT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJy
b3IpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoYXV0byogY2xpZW50ID0gY3VycmVudENsaWVudCgpKQorICAgICAgICBjbGllbnQtPmRp
ZEVuZChlcnJvcik7CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKK30KKwordm9p
ZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAoIW1f
Y3VycmVudFJlcXVlc3QpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJXZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlIHJlY2VpdmVzIHVwZGF0ZSB3aGVuIG5vdCBw
cm9jZXNzaW5nIHJlcXVlc3RzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGVUeXBlOjpFbmQpIHsKKyAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCh1
cGRhdGUub3B0aW9uYWxFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8qIGNsaWVudCA9IGN1cnJlbnRDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZVR5cGU6OlN0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgaWYgKHR5cGUg
PT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpCisgICAg
ICAgIGNsaWVudC0+ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgIGlmICh0eXBlID09IFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KQorICAgICAgICBj
bGllbnQtPmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpCisgICAgICAgIGNsaWVu
dC0+ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoRW5kKQorICAgICAgICBjbGllbnQtPmRp
ZFN0b3BDYXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlVHlwZTo6U291bmRFbmQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENh
cHR1cmluZ1NvdW5kKCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZVR5cGU6OkF1ZGlvRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdB
dWRpbygpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVU
eXBlOjpOb01hdGNoKQorICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgaWYg
KHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlJlc3VsdCkgewor
ICAgICAgICBBU1NFUlQodXBkYXRlLm9wdGlvbmFsUmVzdWx0cygpKTsKKyAgICAgICAgY2xpZW50
LT5kaWRSZWNlaXZlUmVzdWx0KCp1cGRhdGUub3B0aW9uYWxSZXN1bHRzKCkpOworICAgIH0KK30K
KworU3BlZWNoUmVjb2duaXRpb25DbGllbnQqIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bjo6Y3VycmVudENsaWVudCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFlOWI2MTk5OTg5
ZWE3NDY3MjJkN2RmYzY4YzkxOTA5Y2Y4ZTlkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU3BlZWNoUmVjb2du
aXRpb25FcnJvcjsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24gZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciwg
cHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNyZWF0ZSgpOwor
Citwcml2YXRlOgorICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgorICAgIHZvaWQg
c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxh
bmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0
ZXJuYXRpdmVzKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ2xpZW50JikgZmluYWw7CisKKyAgICAvLyBNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsg
fQorCisgICAgdm9pZCBwcm9jZXNzUGVuZGluZ1JlcXVlc3QoKTsKKyAgICB2b2lkIGNvbXBsZXRl
Q3VycmVudFJlcXVlc3QoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4p
OworICAgIHZvaWQgcmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ2xpZW50Jik7CisgICAgdm9pZCBwcm9ncmVzc0RpZFVwZGF0ZShjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlJik7CisKKyAgICBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCogY3VycmVudENsaWVudCgpOworCisgICAgRGVxdWU8
UmVmPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3Rz
OworICAgIFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVu
dFJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzUz
YjQ2NTFkZmYwMDQ5OTVhZTcwNjNjZWE5Y2FmOTJjZTQzYzI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXIpOworfQorCitXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24mIFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbigpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbiA9
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4g
Km1fY29ubmVjdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNjN2Zi
YmUwODZlYjUzMWNlMTc3ZDRmM2UxMjZjZmFiM2ViYTYzMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4gY3JlYXRlKCk7CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
JiBzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBX
ZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIFJlZlB0cjxXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBiM2E4MTUwOGQ0MTg0NmVhMmU5YWJlOWE2MzlhYTdiMWM0
ODk2M2QwLi5mOTBlZTRkZDNmNjYyOGI4YWFmNGZmMzE0Yjc4MGE4OGMzNDE4YWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEy
Nyw4IEBACiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyOCwxMCBAQCBXZWJQYWdl
OjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ciA9ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCk7
CisjZW5kaWYKKyAgICAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBwYWdlQ29u
ZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudD4oKnRoaXMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZGZhNTdjNjU1YWRhN2NmOTcxODliNzU3YzU5YWE5MDE5NTBhYTll
OC4uMDQ3YzJhYTBjODhiMjBhNmRjOGNlNTEyOGNjMGRkMzhmMDc5M2IzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNp
bmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgpAQCAtMjQ1LDYgKzI0Niw3IEBAIFdlYlByb2Nlc3M6Oldl
YlByb2Nlc3MoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3dlYlNRTGl0ZURh
dGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykgeyBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldElz
SG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYK
KyAgICAsIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXZWJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyOjpjcmVhdGUoKSkKIHsKICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJh
dGVnaWVzLgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZTg5NDhlOTE3Y2UyOTU0N2U0ZTAxN2Ex
NWU0YTIwMGRmMTM5ODE3My4uMDVkYTUzMmNmMjUwY2FhZjg1N2U2OTBiMGNlOGQ5ODNkZTc1MDc1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMjUsNiArMTI1LDcg
QEAgY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJMb2FkZXJTdHJhdGVneTsKIGNsYXNzIFdlYlBh
Z2U7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKK2NsYXNzIFdlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXI7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczsKQEAgLTM1
OCw2ICszNTksMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVUb1Bhc3RlYm9hcmRBc3lu
Y2hyb25vdXNseShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgeyByZXR1cm4gbV9zcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmdldCgpOyB9CisjZW5kaWYKKyAgICAKIHByaXZhdGU6CiAgICAgV2ViUHJv
Y2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBAIC02OTMsNiArNjk4LDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3ZwOURlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fdnA5
U1dEZWNvZGVyRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisgICAgUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IG1fc3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBlYmE1ZGE4MDFhMjdmZjk5YjA2NzcxMDM1MWVi
MjQ2OGZhNjk0MDBiLi43ZWM1MDQ2NDUzNzM1YzI1MjIzMmQyNzE1ODQ0ZTg0ODdhN2MyNTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksNyBAQAogI2RlZmluZSBXZWJLaXRN
ZWRpYVJlY29yZGVyRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZWRpYVJlY29yZGVyRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVz
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWQiCiAKIC8vIFRoZSBwcmVmZXJlbmNlIGtleXMgYmVsb3cgdGhpcyBwb2ludCBhcmUg
ZGVwcmVjYXRlZCBhbmQgaGF2ZSBubyBlZmZlY3QuIFRoZXkgc2hvdWxkCiAvLyBiZSByZW1vdmVk
IHdoZW4gaXQgaXMgY29uc2lkZXJlZCBzYWZlIHRvIGRvIHNvLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMmE3ZThlNGI3ZTQ1
NDIxYzYwZTY1NjY0N2JjMzNhZjhiNjcyZTdlOC4uYTEwODM4Y2U5MWZiNTY2NmU5MzgxNmFlZTA1
ZTAyYzNiMGJkMDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMzc1LDYgKzMzNzUsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpc3BlZWNoUmVjb2duaXRpb25FbmFibGVkCit7CisgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZU9ic29sZXRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKaW5kZXggOWJjMTBjYTcyNTEwMzU3YjdkZjZkYzVmYTE2NGY4YTc4MDk4YjAwOS4u
NjY3Y2M3NzE1Mzk2OWU5NTc0OTc4NzUwOGZkOTE5ZjQ4ZGY5MjNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC0zNDgsNiArMzQ4LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hl
TW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhUmVjb3JkZXJFbmFibGVkOikgQk9PTCBfbWVkaWFS
ZWNvcmRlckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NJbmRpdmlkdWFs
VHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBj
b250YWN0UGlja2VyQVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAo
V2ViUHJpdmF0ZURlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNzhlOTcyY2Q3N2FmNGE5Y2RkYWEwNzlmYTYxZTRhMGEwNWMwMWE2
Yy4uMmQ5ZGU0MjQyNDNlNGQ4OWM4Mzg2OTIwOTQ1N2QyNjI4OGQ3Nzg3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAz
NTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1
cmVzKToKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgor
CiAyMDIwLTEwLTE4ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IHdlYmtpdGNvcmVweTogQWxsb3cgb25lIHBhY2thZ2UgdG8gcmVxdWlyZSBhbm90aGVyIHBhY2th
Z2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IDg3OGI2MmFhNTFiNDExYzA3MmY1
Njc4MjE0NGM3NGVjOGI3ZjZkOTYuLjY4NzQ3MzhkZjk5ZmQ3NWNkZTUxMDQyMTI2ODgxNWQwZTAz
Y2RkZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNjksNiArNjksNyBAQCBz
dHJ1Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsg
ZmFsc2UgfTsKICAgICBib29sIGVuYWJsZURyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViU1FMIHsgdHJ1ZSB9OworICAgIGJvb2wgZW5hYmxlU3Bl
ZWNoUmVjb2duaXRpb24geyB0cnVlIH07CiAgICAgYm9vbCBsYXllckJhY2tlZFdlYlZpZXcgeyBm
YWxzZSB9OwogICAgIGJvb2wgdXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07CiAgICAgc3Rk
OjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggN2JhOTA4M2VmMTNlOTExMDI2OTU5ZmRj
NTRmMDRmZTAxNTZiZDA0Ni4uYjI4N2U5MDhkZTRmZDNiMWQ3YTRkZmRhOTY1YmJiZjlkZTE3YTBk
YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODQx
LDYgKzg0MSw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlBy
ZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldFNwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4K
QEAgLTk2Myw2ICs5NjQsOCBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKCkKIAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJTUUxFbmFibGVkOllFU107
CiAKKyAgICBbcHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOllFU107CisK
ICAgICBbV2ViUHJlZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtX
ZWJQcmVmZXJlbmNlcyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0
UG9saWN5Ok5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
XTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBiMzlmZjY5Mzg2YzMwN2MwMjU2YTQzZWVmM2ZlMDM1NWYyMjM5YTcwLi40
MDhjODFiMDJmY2NmOTdlOWRiYjgxMjAxZmJiMDExNTA5Njc4OTZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHNwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbDogQWRkZWQuCisK
IDIwMjAtMTAtMTggIEVtaWxpbyBDb2JvcyDDgWx2YXJleiAgPGVtaWxpb0BjcmlzYWwuaW8+CiAK
ICAgICAgICAgU2VyaWFsaXplIGFzcGVjdCByYXRpbyB3aXRoIHNwYWNlcyBhcm91bmQgdGhlIHNs
YXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmRhZTM3MmM4MDkxMTdkMjZhYjY4YTA0OGExMzJl
ODQxYzE1M2Q1Yi4uNjJkN2RhYWU0YjY3YmMxYzIxZWEwNWFkZWI4YmEwZGYzNzBiY2RiNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03Niw2ICs3Niw3IEBAIGVkaXRpbmcvcGFzdGVib2FyZC9kb20t
cGFzdGUgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBTa2lwIF0KIGZhc3QvbWVk
aWEvaW9zIFsgU2tpcCBdCiBmYXN0L2RvbS9SYW5nZS9tYWMgWyBTa2lwIF0KK3NwZWVjaCBbIFNr
aXAgXQogCiAjIFJlcXVpcmVzIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZwogY29tcG9zaXRpbmcv
c2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xsIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjMWZjZWY1YTA3ODAzMDljMDVmOGY2MmM4
ZTFkNjNjNDdjODE0YTUuLmFlY2QyNjhlYjdkNTYxNmM5ZWRlMzQxYzhiYWUyYWUzOTY4OWRkYzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNCw2ICsz
NCw4IEBAIGh0dHAvdGVzdHMvZ3ppcC1jb250ZW50LWVuY29kaW5nIFsgUGFzcyBdCiAKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9kb2N1bWVudC1sZXZlbC10b3Vj
aG1vdmUtZXZlbnQtbGlzdGVuZXItcGFzc2l2ZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIAor
c3BlZWNoIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMg
RW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBiMzhkMzQwZGE0ZTAxNDExMTBhYWUwYzliYmEyZWMzZmUzN2U2NGEyLi44ZWE0YTgzNjJi
NTgxNDFkNGE1MWMyYjAxZGFmODdhZmUzZjQ1ZDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3ZWJraXQub3JnL2IvMTgxOTY0
IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUtemVyby13aWR0aC1qb2luZXIu
aHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK3NwZWVjaCBbIFBhc3MgXQorCiAj
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZp
YyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWJiY2I4NjNhYjY4Nzg4MjJmOTNiN2YyNGNkY2U3Y2Q5MWJmNTJmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1h
cGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbiA9
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIGlzIGRlZmluZWQuCitQQVNTIHNwZWVjaFJlY29nbml0
aW9uLmxhbmcgaXMgZGVmaW5lZC4KK1BBU1Mgc3BlZWNoUmVjb2duaXRpb24uY29udGludW91cyBp
cyBkZWZpbmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyBpcyBkZWZp
bmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMgaXMgZGVmaW5lZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorTWFrZSBz
dXJlIFNwZWVjaFJlY29nbml0b24gQVBJIGV4aXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbCBiL0xheW91dFRlc3RzL3NwZWVjaC9z
cGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmU5OTU3ZDZjODc4YTZlNzc3
N2U3YzJjNWI3ZjRmOGY3Mzc0Y2UxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Bl
ZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJz
cGVlY2hSZWNvZ25pdGlvbi5sYW5nIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNv
Z25pdGlvbi5jb250aW51b3VzIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJzcGVlY2hSZWNvZ25p
dGlvbi5pbnRlcmltUmVzdWx0cyIpOworICAgIHNob3VsZEJlRGVmaW5lZCgic3BlZWNoUmVjb2du
aXRpb24ubWF4QWx0ZXJuYXRpdmVzIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxwPk1ha2Ugc3VyZSBTcGVlY2hSZWNv
Z25pdG9uIEFQSSBleGlzdHMuPC9wPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411764</attachid>
            <date>2020-10-19 11:01:55 -0700</date>
            <delta_ts>2020-10-19 17:49:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201019110154.patch</filename>
            <type>text/plain</type>
            <size>163577</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlYjA1ZjJkNjNhMzEyZmFkOTYzMTli
YWY0MDFmMzAxZmY4YWJkYjEuLjE4NWE4YWRlZTNlYzI3ZGRmODQ3OGI2YTFkZTA5YzA0YWQ0Njky
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oOgorCiAyMDIwLTEwLTE5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgog
CiAgICAgICAgIE1vdmUgcmVtYWluaW5nIFdlYiBBbmltYXRpb25zIHJ1bnRpbWUtZW5hYmxlZCBm
ZWF0dXJlcyB0byBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU0YmYyMzg2YTJiNGJmMDhhZTg1NDUx
NmY4NDA0NWFkZWRkODMwYzMuLmJmZTAzMTY5ODE5MmFkZWIzN2Q5ZjE4Y2ZhNjhjOGIyOWIwN2Fh
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjggQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNv
Z25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBodHRwczovL3dpY2cu
Z2l0aHViLmlvL3NwZWVjaC1hcGkvI3NwZWVjaHJlY28tc2VjdGlvbi4KKworICAgICAgICBUZXN0
OiBzcGVlY2gvc3BlZWNocmVjb2duaXRpb24tYXBpLmh0bWwKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6flNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uOjpzdG9wUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmFib3J0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmRpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRT
dGFydENhcHR1cmluZ0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdGFydENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpkaWRTdGFydENhcHR1cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NwZWVjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3RvcENhcHR1cmluZ1NvdW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmRpZEZpbmROb01hdGNoKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpkaWRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246OmxhbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OnNldExhbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OmNvbnRpbnVvdXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnNldENvbnRpbnVvdXMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmludGVyaW1SZXN1bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpzZXRJbnRlcmltUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6bWF4QWx0ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpzZXRNYXhBbHRlcm5hdGl2ZXMpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvcjo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmV2ZW50SW50ZXJmYWNl
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6cmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJv
Z3Jlc3NVcGRhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blByb2dyZXNzVXBkYXRlOjp0eXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6Om9wdGlvbmFsRXJyb3IgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZTo6b3B0aW9uYWxSZXN1bHRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y2xpZW50IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6ZGF0YSBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhOjpk
ZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q6Oml0ZW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW46CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRTcGVlY2hS
ZWNvZ25pdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c3BlZWNoUmVjb2duaXRpb25FbmFibGVkIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Nw
ZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvU3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKwogMjAyMC0xMC0xOSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2xlYW4g
dGhlIERpc3BsYXlMaXN0IHJlY29yZGluZyBvZiB0aGUgTmF0aXZlSW1hZ2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MzFkMThkOGU5NTk2YmNlNTFkNjMzZDM0MzMwMTczYjk2MTU3MDY4MS4uNDcwYzVhNDcwNjRkNDgx
ZTkyNTIxOTA3Yjc3ZDEzMmRkYzhlNzhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAy
MC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUw
NzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdG9w
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzcGVlY2hSZWNvZ25pdGlvbkFi
b3J0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6c3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OnJlbW92ZVBlbmRp
bmdSZXF1ZXN0RnJvbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpwcm9jZXNzUGVuZGluZ1Jl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpjdXJyZW50Q2xpZW50KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcjo6c3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIpOgorCiAyMDIwLTEwLTE5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBDbGVhbiB0aGUgRGlzcGxheUxp
c3QgcmVjb3JkaW5nIG9mIHRoZSBOYXRpdmVJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IDU1M2MwNGE3MzdjM2Q3MWE5OGI2YTI1MTRkOGFmNTQwMjQ5MzY0OTguLmQ2NTQ5Y2Y1
Njk2NTY5M2FiMWZiY2I5ZWRlZTdlODQzNGFjMWVmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtX
ZWJQcmVmZXJlbmNlcyBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV2Vi
UHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIwMjAtMTAtMTcgIERhdmlkIEtpbHpl
ciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjU0MzApOiBG
aXggLVdzdHJpbmctY29uY2F0ZW5hdGlvbiB3YXJuaW5nIGZyb20gb3BlbiBzb3VyY2UgY2xhbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZjY1NjZjNTgwMDE3ZTNkZjk5YWVhZTJm
NWRmMzI2OWVmMTIyMTYwYi4uOGY4MTg5YmNiMGViZGUzOGU5YjAzNzc3OTM3ZGM3ZGU5YmI2ZTQz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTcyOCw2ICs3MjgsMTggQEAgU2hv
dWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZE9yRmlyc3RQ
YWludDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitTcGVlY2hSZWNvZ25p
dGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTcGVlY2hS
ZWNvZ25pdGlvbiBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTcGVl
Y2hSZWNvZ25pdGlvbiBmcm9tIFdlYlNwZWVjaCBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRl
ZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklY
TUU6IFRoaXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIGlz
IHRydWUgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhhdCBm
b3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA5M2ZhZmRh
MTE0Yzk5MmI2NDMwOTVkMWIyYjk3NDY0MmYzNjg4Y2IwLi5kYTk2ZGVmOTk3ODgwZGY0YjU5ODhj
ZDM2OWVhNmE5NTQwOWJmZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBA
IC00MjEsNiArNDIxLDEwIEBACiAjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1JFQ09HTklUSU9OKSAm
JiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfUkVDT0dOSVRJ
T04gMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJiYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAx
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmYxMzYzNzFkODlhYmJkOTZkZmFkYmZm
MjEzYjdmNzc3OGQxNjIzYS4uMTYwNzdkZTY4MjE4MDYzODY3ZWIyZjhjNDI3OTllNTNmMjI0OTk4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzNiw2ICs0MzYsMTQgQEAgc2V0KFdlYkNvcmVf
Tk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXli
YWNrLmlkbAogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFi
aWxpdHlDYWxsYmFjay5pZGwKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRs
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCisgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1Nw
ZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRs
CiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA3YTQ1NDFkMTdm
ZWIzZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi4wMjNhOWRmY2QzNjNkMmZkNmY1ZDAxZDQ2
Y2QxNjM2MjZmNDVjOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsyNzksMTMgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tB
dmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIy
MDg5MWFjZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi5mMDk0YmY5NmRmMjg1ZTlmNzU3YTM0M2M5
NGJmZjUxYzE4NmUyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMjExMCw2ICsyMTEwLDIwIEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJM
aXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
b3VyY2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
UmVjb2duaXRpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
U3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTcGVlY2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDI2OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIzMGM1N2U2OWIxMzYu
LmI4YzgyZjhiZDM3ZjhkMDk0ODc1MjMwMzIwOTk4Yjc5NDhhM2Y1MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMzA2LDYgKzMwNiwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2lj
ZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9C
eXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0
cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBmMjc0N2NhZjcxNDM5Njg2N2ZjNmE2N2I5YzcwNDI2OTU4ZjRhNDgwLi41YzFmNzlm
Y2YzYjRiOTRhMjAyMDI4ZDlmMGFhMzcxNThkZWE1MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExMCw2ICsxMTAsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgTW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVxdWVzdElkZW50aWZpZXIuaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAog
ICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTAzMjNjYjUyYzljMTI5YzUyNGE2M2ZjYTk1NWVkN2U1NDRlNjg4MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNw
cApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05J
VElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQp
KTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBk
b2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sKKyAgICBpZiAoYXV0
byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBhdXRvKiBjbGllbnQgPSBwYWdl
LT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKTsKKyAgICAgICAgaWYgKGNsaWVudCkKKyAg
ICAgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uID0gbWFrZVdlYWtQdHIoKmNs
aWVudCk7CisgICAgfQorCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uOjp+U3BlZWNoUmVjb2duaXRpb24oKQoreworICAgIGFib3J0KCk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKK3sKKyAgICBh
Ym9ydCgpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRS
ZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OklkbGUpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlJlY29nbml0aW9uIGlzIGJl
aW5nIHN0YXJ0ZWQgb3IgYWxyZWFkeSBzdGFydGVkIl9zIH07CisKKyAgICBpZiAobV9zcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24pCisgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uLT5zdGFydCgqdGhpcywgbV9sYW5nLCBtX2NvbnRpbnVvdXMsIG1faW50ZXJpbVJlc3VsdHMs
IG1fbWF4QWx0ZXJuYXRpdmVzKTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RhcnRpbmc7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0
aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcgJiYgbV9zdGF0ZSAh
PSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGlzIGJl
aW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBtX3Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+c3RvcCgqdGhpcyk7CisKKyAgICBtX3N0YXRlID0g
U3RhdGU6OlN0b3BwaW5nOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29n
bml0aW9uKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3RhcnRpbmcgJiYgbV9zdGF0
ZSAhPSBTdGF0ZTo6UnVubmluZykgeworICAgICAgICBMT0dfRVJST1IoIlJlY29nbml0aW9uIGlz
IGJlaW5nIHN0b3BwZWQgb3IgYWxyZWFkeSBzdG9wcGVkLiIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKQorICAgICAgICBt
X3NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi0+YWJvcnQoKnRoaXMpOworCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpBYm9ydGluZzsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkU3Rh
cnQoKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKyAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0YXJ0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFN0YXJ0Q2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoc3RhcnRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmRpZFN0b3BDYXB0dXJpbmdTcGVlY2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc3BlZWNoZW5kRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRTdG9wQ2FwdHVyaW5nU291bmQoKQoreworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc291bmRlbmRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRp
ZFN0b3BDYXB0dXJpbmdBdWRpbygpCit7CisgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5hdWRpb2VuZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRmlu
ZE5vTWF0Y2goKQoreworICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5ub21hdGNoRXZlbnQsIDAsIG51bGxwdHIpKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJy
b3I+IGVycm9yKQoreworICAgIG1fc3RhdGUgPSBTdGF0ZTo6SWRsZTsKKyAgICBtX2ZpbmFsUmVz
dWx0cy5jbGVhcigpOworCisgICAgaWYgKGVycm9yKQorICAgICAgICBkaXNwYXRjaEV2ZW50KFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBlcnJvci52YWx1ZSgpLnR5cGUsIGVycm9yLnZhbHVlKCkubWVzc2FnZSkpOworICAgIGVsc2UK
KyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YT4mJiByZXN1bHREYXRhcykKK3sKKyAgICBWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gYWxsUmVzdWx0czsKKyAgICBhbGxSZXN1bHRzLnJlc2Vy
dmVDYXBhY2l0eShtX2ZpbmFsUmVzdWx0cy5zaXplKCkgKyByZXN1bHREYXRhcy5zaXplKCkpOwor
ICAgIGFsbFJlc3VsdHMuYXBwZW5kVmVjdG9yKG1fZmluYWxSZXN1bHRzKTsKKworICAgIHVpbnQ2
NF90IG5vbkZpbmFsUmVzdWx0SW5kZXggPSBhbGxSZXN1bHRzLnNpemUoKTsKKyAgICBmb3IgKGF1
dG8gcmVzdWx0RGF0YSA6IHJlc3VsdERhdGFzKSB7CisgICAgICAgIFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+IGFsdGVybmF0aXZlczsKKyAgICAgICAgZm9yIChhdXRv
IGFsdGVybmF0aXZlRGF0YSA6IHJlc3VsdERhdGEuYWx0ZXJuYXRpdmVzKQorICAgICAgICAgICAg
YWx0ZXJuYXRpdmVzLmFwcGVuZChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUo
V1RGTW92ZShhbHRlcm5hdGl2ZURhdGEudHJhbnNjcmlwdCksIGFsdGVybmF0aXZlRGF0YS5jb25m
aWRlbmNlKSk7CisgICAgICAgIGF1dG8gbmV3UmVzdWx0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ6OmNyZWF0ZShXVEZNb3ZlKGFsdGVybmF0aXZlcyksIHJlc3VsdERhdGEuaXNGaW5hbCk7Cisg
ICAgICAgIGlmIChyZXN1bHREYXRhLmlzRmluYWwpIHsKKyAgICAgICAgICAgIG1fZmluYWxSZXN1
bHRzLmFwcGVuZChuZXdSZXN1bHQpOworICAgICAgICAgICAgKytub25GaW5hbFJlc3VsdEluZGV4
OworICAgICAgICB9CisgICAgICAgIGFsbFJlc3VsdHMuYXBwZW5kKFdURk1vdmUobmV3UmVzdWx0
KSk7CisgICAgfQorCisgICAgYXV0byByZXN1bHRMaXN0ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0OjpjcmVhdGUoV1RGTW92ZShhbGxSZXN1bHRzKSk7CisgICAgZGlzcGF0Y2hFdmVudChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnJlc3VsdEV2ZW50LCBu
b25GaW5hbFJlc3VsdEluZGV4LCBtYWtlUmVmUHRyKHJlc3VsdExpc3QuZ2V0KCkpKSk7Cit9CisK
K2NvbnN0IGNoYXIqIFNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlNwZWVjaFJlY29nbml0aW9uIjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjOTFhYmEyNGVkZWQ0NTMxMmE5OTEy
ODBmNTFlMTQ5OGJkYjc4NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CisgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgflNwZWVjaFJl
Y29nbml0aW9uKCk7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBt
X2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9
IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGlu
dW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVvdXMpIHsgbV9jb250
aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0
IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldEludGVyaW1SZXN1bHRz
KGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1bHRz
OyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21h
eEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1h
eEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsgfQor
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvZ25pdGlvbigpOworICAgIHZvaWQgc3Rv
cFJlY29nbml0aW9uKCk7CisgICAgdm9pZCBhYm9ydFJlY29nbml0aW9uKCk7CisKKyAgICAvLyBU
T0RPOiBtYWtlIHN1cmUgZXZlbnQgb3JkZXJpbmcgaXMgY29ycmVjdC4KKyAgICB2b2lkIGRpZFN0
YXJ0KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7Cisg
ICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFy
dENhcHR1cmluZ1NwZWVjaCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NwZWVj
aCgpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcENhcHR1cmluZ1NvdW5kKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmROb01h
dGNoKCkgZmluYWw7CisgICAgdm9pZCBkaWRFbmQoT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25F
cnJvcj4gPSBXVEY6Om51bGxvcHQpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3VsdChW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYmKSBmaW5hbDsKKworICAgIHVzaW5n
IFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKworcHJpdmF0
ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgU3RhcnRpbmcsCisgICAgICAgIFJ1
bm5pbmcsCisgICAgICAgIFN0b3BwaW5nLAorICAgICAgICBBYm9ydGluZywKKyAgICAgICAgSWRs
ZSwKKyAgICB9OworICAgIFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50Jik7CisKKyAgICAvLyBB
Y3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3Q7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOworCisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3Rh
dGU6OklkbGUgfTsKKyAgICAvLyBUT0RPOiBkZWNpZGUgZGVmYXVsdCBsYW5ndWFnZS4KKyAgICBT
dHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRp
dmVzIHsgMSB9OworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uPiBtX3Nw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ+PiBtX2ZpbmFsUmVzdWx0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRkMDNhNjUyNzA0MjIyZTk5YWMyMDE3ZmIw
NjY5NWViNzMxMTFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dO
SVRJT04sCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBFeHBv
c2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb24geworICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoKTsKKworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFu
ZzsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb250aW51b3VzOworICAgIGF0dHJpYnV0ZSBib29s
ZWFuIGludGVyaW1SZXN1bHRzOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG1heEFsdGVy
bmF0aXZlczsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgSW1wbGVtZW50ZWRBcz1zdGFydFJl
Y29nbml0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICBbSW1wbGVtZW50ZWRBcz1zdG9wUmVj
b2duaXRpb25dIHVuZGVmaW5lZCBzdG9wKCk7CisgICAgW0ltcGxlbWVudGVkQXM9YWJvcnRSZWNv
Z25pdGlvbl0gdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291bmRzdGFydDsK
KyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
c291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvZW5kOworICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1ODQz
ODZmNGVkYzFlZTE5ZDEwMWJkYjg2ZjhmOGJmZWI4YjNiOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0cmluZyYmIHRyYW5z
Y3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0KSwgY29uZmlkZW5j
ZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQorICAg
IDogbV90cmFuc2NyaXB0KHRyYW5zY3JpcHQpCisgICAgLCBtX2NvbmZpZGVuY2UoY29uZmlkZW5j
ZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmM2MGUxMjQ3ZGYwNTJmYzQyZTJkNWM5NDQ4MGNmZjg0
MGI2ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4geworICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBjcmVhdGUoU3RyaW5nJiYgdHJhbnNj
cmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIHRyYW5zY3JpcHQoKSBjb25z
dCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAgICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZp
ZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgbV9jb25maWRl
bmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEzNmUwY2YzMmYwMzAzYTFlYWE0M2Q0Nzk2ZGQ5
ODM3YmVjOWQyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIElt
cGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNl
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlk
ZW5jZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ2NWEwYzhjZTNlNjdmY2Y0M2MwNmI4
MjJlNDA0YWQ5MGE3Zjc3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaApAQCAtMCwwICsxLDkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitl
bnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHsKKyAgICBOb1NwZWVjaCwKKyAg
ICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFsbG93
ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5ndWFn
ZU5vdFN1cHBvcnRlZAorfTsKKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeworICAg
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlIHR5cGU7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uRXJyb3I+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHR5cGUgPDwgbWVzc2FnZTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+IFNwZWVj
aFJlY29nbml0aW9uRXJyb3I6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgcmVzdWx0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnR5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubWVzc2FnZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGUsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb1NwZWVjaCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsCisgICAgICAgIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOZXR3b3JrLAorICAgICAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwKKyAgICAgICAgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2VkLAorICAg
ICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QmFkR3JhbW1hciwKKyAg
ICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Okxhbmd1YWdlTm90U3Vw
cG9ydGVkCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMmI5YzE0ZjVjNTlmNTExOTEwMTE1OTM3NmQ0ZjJh
YTFhNDY0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgPSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVkYTkwYWRhN2FkMDg0MzM5MDdj
MzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorXSBlbnVtIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAgICAiYWJvcnRlZCIs
CisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAibm90LWFsbG93ZWQi
LAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1tYXIiLAorICAgICJs
YW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUwNjVmYmViYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisKKyNp
ZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
dHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVu
dCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQuZXJyb3IpCisgICAg
LCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBl
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVzc2FnZShtZXNzYWdl
KQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2
ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWZmZjFjZmYwMzQ5OTFkZjJi
MzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09H
TklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworcHVibGljOgorICAgIHN0
cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgIH07CisKKyAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcm
LCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJl
ZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAgU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9Cisg
ICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChj
b25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1fZXJyb3I7CisgICAgU3RyaW5n
IG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMDY2MjY1ZDNjOTdhNGQ0YzE5MGU3
M2Q4NTc4YmUwMjlkNDMyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
ICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgcmVxdWlyZWQgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3RyaW5nIG1lc3NhZ2UgPSAiIjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4OGIyZGFiOWEyMTdlNzE1MWEyZmQ2NjJmMTA2
MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQu
aCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9
CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Ojpj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0
cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIHJlc3VsdEluZGV4LCBX
VEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwg
SXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkK
KyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhp
bml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29n
bml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgs
IFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYgcmVzdWx0cykKKyAgICA6IEV2
ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykK
KyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMoV1RGTW92
ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVu
dDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2MTk3N2RiM2FmYTYyNDY3MmNjMTUxOTVlZTQ1
Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNs
dWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBmaW5hbCA6
IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAg
ICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElz
VHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRp
b25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwg
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICB1aW50NjRfdCBy
ZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0KKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdHMu
Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVu
dEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWludDY0X3QgbV9yZXN1bHRJbmRl
eDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDhjM2VjMmUxNDg0YzBlOTc4YmYxYmJhNDJhMmJkMzQzMTFjMThjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNl
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3Ry
aW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4OworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CisK
K2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAg
IHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2NlNTMwYWYxMGY3MTY5NmUxOTJmYWYxODA5ZjFlYmNhYmJhMDI1
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZS5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIFNwZWVjaFJl
Y29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OnVwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlVHlwZSB0eXBlKQoreworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlIHsgdHlwZSB9OworfQorCitTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlIFNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OmVycm9yKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3ImIGVycm9yKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUg
dXBkYXRlIHsgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkVycm9yIH07Cisg
ICAgdXBkYXRlLm1fZXJyb3IgPSB7IGVycm9yIH07CisgICAgcmV0dXJuIHVwZGF0ZTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNz
VXBkYXRlOjpyZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4m
IHJlc3VsdHMpCit7CisgICAgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSB1cGRhdGUg
eyBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6UmVzdWx0IH07CisgICAgdXBk
YXRlLm1fcmVzdWx0cyA9IHsgcmVzdWx0cyB9OworICAgIHJldHVybiB1cGRhdGU7Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUoU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGUgdHlwZSkKKyAgICA6IG1f
dHlwZSh0eXBlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MWVmNWViYTBlYzg2ODc1MGFl
ODQ3MmZmZTA1MDU2ZDgyZTRmMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmgKQEAgLTAsMCAr
MSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hf
UkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgiCisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlIHsKKyAgICBJbnZhbGlkLAorICAgIFN0YXJ0LAorICAg
IEF1ZGlvU3RhcnQsCisgICAgU291bmRTdGFydCwKKyAgICBTcGVlY2hTdGFydCwKKyAgICBTcGVl
Y2hFbmQsCisgICAgU291bmRFbmQsCisgICAgQXVkaW9FbmQsCisgICAgUmVzdWx0LAorICAgIE5v
TWF0Y2gsCisgICAgRXJyb3IsCisgICAgRW5kLAorfTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25Qcm9ncmVzc1VwZGF0ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGUgdXBkYXRlKFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBl
KTsKKyAgICBzdGF0aWMgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZSBlcnJvcihjb25z
dCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJik7CisgICAgc3RhdGljIFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRp
b25FcnJvcj4gb3B0aW9uYWxFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAgICBP
cHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gb3B0aW9uYWxSZXN1
bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzOyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+
IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2du
aXRpb25Qcm9ncmVzc1VwZGF0ZShTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSk7
CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZSBtX3R5cGU7CisgICAg
T3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gbV9lcnJvcjsKKyAgICBPcHRpb25hbDxW
ZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gbV9yZXN1bHRzOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3R5
cGUgPDwgbV9lcnJvciA8PCBtX3Jlc3VsdHM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU+IFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVj
aFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUgcmVzdWx0KFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jl
c3NVcGRhdGVUeXBlOjpJbnZhbGlkKTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5t
X3R5cGUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9lcnJvcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Jlc3VsdHMpKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblByb2dyZXNzVXBkYXRlVHlwZTo6SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlN0YXJ0LAorICAgICAgICBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9TdGFydCwKKyAgICAgICAg
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kU3RhcnQs
CisgICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpT
cGVlY2hTdGFydCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1Vw
ZGF0ZVR5cGU6OlNwZWVjaEVuZCwKKyAgICAgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZVR5cGU6OlNvdW5kRW5kLAorICAgICAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6QXVkaW9FbmQsCisgICAgICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpSZXN1bHQsCisgICAgICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpOb01hdGNoLAorICAgICAg
ICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlVHlwZTo6RXJyb3IsCisg
ICAgICAgIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpFbmQK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2VmNDJkZjVmNmZlYjQ4ZWUxMTFhZTU3ZTJlNTY0YjUwMWQ5ZTBh
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCIK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
OjpjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiBs
YW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFs
dGVybmF0aXZlcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QoY2xpZW50LCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0
ZXJuYXRpdmVzKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmlu
ZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBt
YXhBbHRlcm5hdGl2ZXMpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQorICAg
ICwgbV9kYXRhKFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEgeyBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBsYW5nLCBjb250aW51b3VzLCBpbnRlcmlt
UmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzIH0pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OGY3MjA3OTQ4ZjNjYzRh
MDk2MTJiMTkyNTUwNTZjODczNzBjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09H
TklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVy
aW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisgICAgU3BlZWNoUmVjb2du
aXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Cisg
ICAgY29uc3QgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGF0YTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdChT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudCYsIGNvbnN0IFN0cmluZyYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMpOworCisg
ICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVudD4gbV9jbGllbnQ7CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0RGF0YSBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxYTM4MjU2
ZGQyMzk0ZDU2YTFhMWMzMDJlZDU2YmYxZDVlOWMzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmgK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIgorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0RGF0YSB7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRp
ZmllciBpZGVudGlmaWVyOworICAgIFN0cmluZyBsYW5nOworICAgIGJvb2wgY29udGludW91cyB7
IGZhbHNlIH07CisgICAgYm9vbCBpbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0
X3QgbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBkZWNvZGUoRGVj
b2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBpZGVudGlmaWVyIDw8IGxhbmcgPDwgY29udGludW91cyA8PCBpbnRlcmltUmVz
dWx0cyA8PCBtYXhBbHRlcm5hdGl2ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitP
cHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhPiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3REYXRhIHJlc3VsdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5p
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmxhbmcpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY29udGludW91cykpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pbnRl
cmltUmVzdWx0cykpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tYXhBbHRlcm5hdGl2ZXMpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNGM1YmQ1MjIyMzIzMWFjY2I3MDM1MWNmYTJiZTRlNzNiMDc0NDAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SWRlbnRpZmllclR5cGU+OworCit9CisKKyNlbmRpZiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZlN2QxOWYzZjU3ZDZkNTAyYmNjN2Y0ZjAwOTYyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKworI2lm
IEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUo
YWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0ZXJuYXRp
dmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChpc0ZpbmFsKQorewor
fQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9h
bHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6IG51bGxw
dHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThhZjM2MmJkZjY5NThlMDI3ZTZkMWRkYzAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4m
JiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIGl0ZW0o
dWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wg
aXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+
PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNlIH07Cit9OworCit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzZlZTRlM2E4MWU0NTJlMmJj
NTUxMzZkYTg3NzZjZTMyMjQ0MjJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEy
ODhlMDYwYTFmMzgxOGVlNDFjYTlkNmRjNDYyNmNjZDcxMjJlMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHsKKyAgICBTdHJpbmcgdHJhbnNjcmlw
dDsKKyAgICBkb3VibGUgY29uZmlkZW5jZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCB0cmFuc2NyaXB0IDw8IGNvbmZpZGVuY2U7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
RGF0YT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGE6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIHJlc3VsdDsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2NyaXB0KSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbmZp
ZGVuY2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7CisgICAgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBhbHRlcm5hdGl2ZXM7CisgICAgYm9v
bCBpc0ZpbmFsIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBkZWNvZGUoRGVjb2RlciYp
OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IGFsdGVybmF0aXZlcyA8PCBpc0ZpbmFsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PgorT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YSByZXN1bHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
YWx0ZXJuYXRpdmVzKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzRmluYWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViOWU3YTA2MDVm
MWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JF
Q09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOwor
CitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxpc3QpKSk7Cit9CisKK1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0odWludDY0
X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fbGlzdC5zaXplKCkpID8g
bV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkKK3sKKyAg
ICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBtX2xpc3QoV1RGTW92ZShsaXN0KSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRiZjQ5ZjM0MTc4MjYwNjZmZWU5NjU0
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0
LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGlu
ZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CisK
K3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkgPSBkZWZhdWx0Owor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWY4ZmY2NWY4ZTFkMDEwZTRiZDczMTFkYjgy
OGIzZjIwZjlhNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQg
aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCmluZGV4IDljODg3NTFlM2M2ODA2NDFk
ZDNkMGI0NjNhNTg1Zjg1OWIwOWMyNzMuLmZkNWM0NDkxNDAxZDIzZDIxY2NjMGFmOTUzOThkM2U5
NDk5NGJhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0Tm9kZS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJBdWRpb05vZGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MWM1ODc5ODVlNDA5Y2ViMjEzMWI4OGExY2M0YmY3Y2E3
ZjVjM2VkLi5hYzQyMmI4ODA5NmVlMTE1OGNjOGIxMzY3ODEwNzUwY2EwYmZhYWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTgxLDYgKzE4MSwxNCBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1
cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Q
cm9ncmVzc1VwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gv
RE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCkBAIC0zNDg4
LDYgKzM0OTYsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBKU1Nsb3RhYmxlLmNwcAogSlNTb3VyY2VC
dWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uLmNw
cAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorSlNTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKK0pT
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogSlNTcGVlY2hTeW50aGVzaXMuY3BwCiBK
U1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZTM5YjcxYzYxMDVkZjQ2N2IzYjMwZjUyMjliN2QwZDA1Mjk3Yjc1Yi4uZDhkY2FkNzMy
NDliZWUwNDc2MjdhNTU4OGVhYzgyYWNmMTliZmViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjczMCw2ICsyNzMwLDIyIEBA
CiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4MDEyRjI1RTUxMDAz
M0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBEMkIzMzVDMDAzMzhG
RjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyog
R3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1
MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OworCQk5MzQ5NTBDRjI1Mzk0MzY4MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjIyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29k
ZS5oICovOyB9OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmggKi87IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICov
OyB9OworCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9n
cmVzc1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0OTUwQjMyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NV
cGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEMxMjUz
OTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovOyB9OworCQk5MzQ5
NTBENTI1Mzk0MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCMDI1Mzk0
MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRDYyNTM5NDM4MTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OworCQk5MzQ5NTBENzI1Mzk0M0JC
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCNTI1Mzk0MzRBMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRDgyNTM5NDNDMzAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3REYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTM0OTUwREIyNTM5NDNFNDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5
NTBEOTI1Mzk0M0UxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBEQzI1Mzk0
M0U2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBEQTI1Mzk0M0UyMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTEyNTNBNTlBNjAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MERGMjUzQTU5QTYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwRTgyNTNDRUE4QzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNENDMTA5
MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87IH07CiAJCTkzNEY3MTNB
MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTM5MEQ1QTZGMTAw
MDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEzQzBENUE2RjE5MDAwMThE
NjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9y
QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMTI0Niw2ICsxMTI2MiwzNyBAQAogCQk5MzQ0MkM5RDBEMkIzMzVDMDAzMzhGRjkgLyogSFRN
TFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTA3RTMxMjVCQkJDODAw
N0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjEyNTM5NDM0ODAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEIyMjUzOTQzNDgwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjMy
NTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI1MjUzOTQzNEEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI2MjUzOTQzNEEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI4MjUzOTQzNEMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBC
OTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzAy
NTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMjI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzUyNTM5
NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDOTI1Mzk0MzU1
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwRDkyNTM5NDNFMTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MERBMjUzOTQzRTIwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1
MERGMjUzQTU5QTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwRTcy
NTNDRUE4QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2Ny
aXB0U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRT
b3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM3MEQ1QTZF
RkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2
OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE4MjQsNiArMjE4NzEsOSBAQAogCQkJCTVDN0M4OEQ3MUQwRjFG
MkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMw
MDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJOTM0OTUwRDkyNTM5NDNF
MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50LmggKi8sCisJCQkJOTM0OTUwREEy
NTM5NDNFMjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAorCQkJ
CTkzNDk1MEU3MjUzQ0VBOEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgg
Ki8sCiAJCQkJQzE0OTM4MDUyMjM0MjcxOTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVy
LmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1l
ci5oICovLApAQCAtMjUzNDIsNiArMjUzOTIsMzQgQEAKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5
NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgx
NkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJ
QUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICov
LAorCQkJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAg
Ki8sCisJCQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmgg
Ki8sCisJCQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlk
bCAqLywKKwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUwQjIy
NTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCAqLywKKwkJCQk5MzQ5
NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywK
KwkJCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsICovLAorCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCQTI1Mzk0MzREMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBD
MDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJCQkJ
OTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywK
KwkJCQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5p
ZGwgKi8sCisJCQkJOTM0OTUwQzIyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UHJvZ3Jlc3NVcGRhdGUuY3BwICovLAorCQkJCTkzNDk1MEIzMjUzOTQzNDkwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlLmggKi8sCisJCQkJOTM0OTUwQjYyNTM5NDM0
QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTM0OTUw
QjUyNTM5NDM0QTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovLAorCQkJ
CTkzNDk1MENCMjUzOTQzNTYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRh
LmggKi8sCisJCQkJOTM0OTUwREYyNTNBNTlBNjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdElkZW50aWZpZXIuaCAqLywKKwkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkzNDk1MEI5MjUzOTQz
NEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTM0OTUw
QjAyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovLAor
CQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDAxNyw2ICszNDA5NSwyMiBAQAog
CQkJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxO
YXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENFMjUzOTQz
NjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzQ5NTBEQjI1Mzk0M0U0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MERDMjUzOTQzRTYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENGMjUz
OTQzNjgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQyMjUz
OTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzQ5NTBEMzI1Mzk0Mzc3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVz
c1VwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRTgyNTNDRUE4QzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ3
MjUzOTQzQkIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzNDk1MEQ4MjUzOTQzQzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBFMTI1M0E1OUE2MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENTI1Mzk0MzdGMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENjI1Mzk0Mzgx
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lz
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3MDJjYzU5NzJlOTk1
Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLmNmMmQ5ZWZkMzcxZWZhZThhODBjZDY3YzI5ZDQ2
NjhhOWE3MDBhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmgKQEAgLTIzOCw2ICsyMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8oU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbikgXAogICAgIG1hY3JvKFNoYWRvd1Jvb3QpIFwKKyAgICBtYWNybyhT
cGVlY2hSZWNvZ25pdGlvbikgXAogICAgIG1hY3JvKFN0YXRpY1JhbmdlKSBcCiAgICAgbWFjcm8o
U3RlcmVvUGFubmVyTm9kZSkgXAogICAgIG1hY3JvKFN0eWxlUHJvcGVydHlNYXBSZWFkT25seSkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5NjBhNzM3ZmJlMjM1
MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1M2RlYjdlMmQ3YmJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBAQCBSVENEYXRhQ2hh
bm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQgY29u
ZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KK1NwZWVjaFJlY29n
bml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBTcGVlY2hTeW50aGVz
aXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENvbnRleHRFdmVudCBj
b25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAyZDNlN2QzMzc3
YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTb3VyY2VCdWZmZXIg
Y29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1F
RElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJ
UwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9
VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDViMDkzMmFjYmJiMTIyNzBiZGZhMjY4OWQ3YzIw
Nzc5NDgxOWU2NzkuLmE2NDkwYTkwNDJlMjg4NjBhN2MyOTkwZTkxM2M1NDEyOWU2YTgxYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9y
YWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTI0OCw2ICsyNDksOSBAQCBQYWdlOjpQYWdlKFBh
Z2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjaWYgRU5BQkxFKFdFQkdMKQog
ICAgICwgbV93ZWJHTFN0YXRlVHJhY2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkdM
U3RhdGVUcmFja2VyKSkKICNlbmRpZgorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisg
ICAgLCBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKKyNlbmRpZgogI2lmIEVOQUJMRShTUEVFQ0hf
U1lOVEhFU0lTKQogICAgICwgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQoV1RGTW92ZShwYWdlQ29u
ZmlndXJhdGlvbi5zcGVlY2hTeW50aGVzaXNDbGllbnQpKQogI2VuZGlmCkBAIC0zMzk5LDQgKzM0
MDMsMTQgQEAgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMs
IFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKICAgICByZXR1cm4gdHM7CiB9CiAKKyNpZiBFTkFC
TEUoU1BFRUNIX1JFQ09HTklUSU9OKQorU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKiBQYWdl
OjpzcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSBjb25zdAoreworICAgIGlmICghbV9zcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiAmbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLT5zcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24oKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IDVhYmIzNTBjNmJiOTFiNGU4ZjBiOTUyOTlkYWE0NGI4ODhiYjFhZDUuLjY2YTI2YjQw
OTRiOGVjN2VhZDA2YzhmNTFiMmNjZTY5NjkwNDVhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMzYs
NiArMTM2LDggQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFzcyBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjsKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI7CiBjbGFzcyBTcGVlY2hTeW50aGVzaXNDbGllbnQ7CiBjbGFzcyBTdG9yYWdl
TmFtZXNwYWNlOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwpAQCAtNzcwLDYgKzc3
MiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXIqIHdlYkdMU3RhdGVUcmFja2Vy
KCkgY29uc3QgeyByZXR1cm4gbV93ZWJHTFN0YXRlVHJhY2tlci5nZXQoKTsgfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiogc3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIFNwZWVjaFN5bnRoZXNpc0NsaWVudCog
c3BlZWNoU3ludGhlc2lzQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXND
bGllbnQuZ2V0KCk7IH0KICNlbmRpZgpAQCAtOTA1LDYgKzkxMSwxMCBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gbV93ZWJHTFN0YXRlVHJhY2tlcjsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBSZWZQdHI8U3Bl
ZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOworI2Vu
ZGlmCisKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
U3BlZWNoU3ludGhlc2lzQ2xpZW50PiBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IGYyODQ4ODI2YTZiMDBk
ZDQyMDg5MDcxMjk2MzI1NGQ5OTMyNzJlYzguLmRjZmI5NzI4ZTJhM2Y1ODdiYjdhMzAzZGUzYzJm
NWFjZDFiMDc3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAg
LTY4LDYgKzY4LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xT
dGF0ZVRyYWNrZXI7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogY2xhc3MgU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CkBAIC0xMTIs
NiArMTEzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJHTCkKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2VyOwogI2VuZGlmCisjaWYgRU5B
QkxFKFNQRUVDSF9SRUNPR05JVElPTikKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlcj4gc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShTUEVF
Q0hfU1lOVEhFU0lTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hTeW50aGVzaXNDbGllbnQ+
IHNwZWVjaFN5bnRoZXNpc0NsaWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBlZTBkNTdmZjgxZTI5OWQ3MGJkMzE5Yzg2YzRk
N2EzZjA1MDU4NzRlLi4yNmZiZTY1NDBkOWI1ODgxMTc1YWM2NDU0NjNhMmI1Y2UyNDBiMmQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjQ2
LDYgKzI0NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNhYmxlTWVkaWFFeHBlcmllbmNlUElE
SW5oZXJpdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVNZWRpYUV4cGVyaWVuY2VQSURJ
bmhlcml0YW5jZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
ICAgIHZvaWQgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1f
c3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBzcGVlY2hS
ZWNvZ25pdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFJlY29nbml0aW9uRW5h
YmxlZDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpOwpAQCAtMzcwLDYgKzM3NSwxMCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9kaXNhYmxlTWVkaWFFeHBlcmllbmNlUElESW5oZXJpdGFuY2UgeyBmYWxz
ZSB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIGJvb2wg
bV9zcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBmcmll
bmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25DbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NGQ1ZTVlOGEzMTFiYzZlMzYxMzEwMmZhNTFiYmRhN2EyM2VhZGQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5o
CkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9y
LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dD4geworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgPSBk
ZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rh
cnRDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDYXB0dXJp
bmdTcGVlY2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTcGVlY2go
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BDYXB0dXJpbmdTb3VuZCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5kTm9NYXRjaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kKE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4mJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhhZjc4MjJhNTE3N2ZjY2FkNTYyNjcxOGYxODRjOWFmNGYxZDY1YmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbj4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSA9IGRlZmF1
bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25DbGllbnQmLCBj
b25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0KFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50JikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjRlODBlMDEwNjZjNmVmYWRlYTQ2ZjQ5YzMxMzI1MzI3MjZh
ZGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24oKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCA3OTZkYjY5OTZlZWRmZTViN2U5MjgwMDEzNzIwNTRjZjY5
YzM4MDQ2Li5kZGI0NTM0ZjE3MzI1OTFiNmUzNmI0YzcwNWRhMDJlNzFiZGMxZjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKQEAgLTY1NCw2ICs2NTQsOCBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBy
b2dyZXNzVHJhY2tlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJj
aFBvcHVwTWVudS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xp
ZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTk4NjNmNTYx
NmU1MmM4NjRhYjI2NGYxMDE2ZTYzYmM5ZDhmZjM1ZC4uODQzYTgxMDVlMTgxYjA1MDExNzNiZGMz
YTA5Y2YxMzNlMWY2MTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0xODg1LDYgKzE4ODUsMjIgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhh
c1NsZWVwRGlzYWJsZXIoKSBjb25zdAogICAgIHJldHVybiAhbV9zbGVlcERpc2FibGVycy5pc0Vt
cHR5KCk7CiB9CiAKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6c3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnNw
ZWVjaFJlY29nbml0aW9uU3RvcCgpCit7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzcGVl
Y2hSZWNvZ25pdGlvbkFib3J0KCkKK3sKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAppbmRleCAxMWU4NDBhMTk5OGM1N2M2NjEwMmRmOTg3ZDBmMjY3YTdiMmM2
MDQwLi5lNzM2ZDA3NjUwZmUxYTMzMTBkMjRhNjk3MjhhOTY0Y2I4YTdmZjM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDksNiArNDksNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZFN0cmluZ0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NsZWVwRGlzYWJsZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdERhdGEuaD4KICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CkBAIC0zOTQsNiArMzk1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZygpOwogI2VuZGlmCiAKKyAgICAKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorICAgIHZvaWQgc3BlZWNoUmVjb2duaXRpb25TdGFydChjb25zdCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhJik7CisgICAgdm9pZCBzcGVlY2hS
ZWNvZ25pdGlvblN0b3AoKTsKKyAgICB2b2lkIHNwZWVjaFJlY29nbml0aW9uQWJvcnQoKTsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwg
V2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMxNTcwNDczYjBj
M2YwY2I3NWM1MjExYzkwYzMyYzVjOTU4NGIyYTIuLjJjZjBlNjRjMjcyNDEyNGEyMjgxOTYwNmQ1
YzE2YmZkYzA5MGViYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTg3LDQgKzg3LDEwIEBAIG1lc3NhZ2VzIC0+IFdl
YlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2Fi
bGVyKFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBy
ZWFzb24sIGJvb2wgZGlzcGxheSkKICAgICBEaWREZXN0cm95U2xlZXBEaXNhYmxlcihXZWJDb3Jl
OjpTbGVlcERpc2FibGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKyAgICBTcGVlY2hSZWNvZ25pdGlvblN0YXJ0KHN0cnVjdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3REYXRhIHJlc3VsdCkKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblN0b3AoKQorICAgIFNwZWVjaFJlY29nbml0aW9uQWJvcnQoKQorI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YmQ5
YWM0NWYzMWFjNDNjMmZjMDk2NGFmNWZkZGU0YTc4ZTY4NDg3Li4yMTY3NTk4YWE5ZDRkMTc5MTk5
MWNhMGMxNjM4NzVmZWMzYzdjOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzMsNiArMTM3Myw4IEBACiAJCTkzM0U4MzU1MjNB
MDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzUzMjNBMDdCRjgwMERFRjI4OSAvKiBXZWJJREJT
ZXJ2ZXIuaCAqLzsgfTsKIAkJOTMzRTgzNUEyM0ExQUUyODAwREVGMjg5IC8qIFdlYklEQlNlcnZl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLzsg
fTsKIAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJOTM0OTUwNzQyNTM4QjJDQTAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0OTUwNzIyNTM4QjJDMjAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oICovOyB9OworCQk5MzQ5NTBFQjI1M0NFQURCMDA5OUYxNzEgLyogV2ViU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8qIFdlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0
aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
NTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIw
MERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUy
QjZGNjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8q
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovOyB9OwpAQCAtNDQ1NCw2ICs0NDU2LDEwIEBACiAJ
CTkzM0U4MzU3MjNBMUE4NzIwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzNFODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2Vy
dmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJ
REJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJ
REJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJT
ZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk5
MzQ5NTA3MjI1MzhCMkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTA3MzI1MzhC
MkMyMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEU5MjUzQ0VBRDcw
MDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBFQTI1M0NFQUQ4MDA5OUYxNzEg
LyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJ
dGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25NZW51
SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk1MTI3NzYx
NkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTAyNCw2ICs5MDMwLDEwIEBACiAJCQkJNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJl
c291cmNlTG9hZE9ic2VydmVyLmggKi8sCiAJCQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8q
IFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4NDUxMUZGNEI2NTAwMDMyQjM5
IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oICovLAorCQkJCTkzNDk1MDczMjUzOEIyQzIwMDk5RjE3
MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwICovLAorCQkJCTkzNDk1MDcy
MjUzOEIyQzIwMDk5RjE3MSAvKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywK
KwkJCQk5MzQ5NTBFOTI1M0NFQUQ3MDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5jcHAgKi8sCisJCQkJOTM0OTUwRUEyNTNDRUFEODAwOTlGMTcxIC8qIFdlYlNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyog
V2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLywKIAkJCQlDMTQ5MzgwMjIyMzQxQzYwMDAw
Q0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8sCiAJCQkJQzE0OTM4MEEyMjM4
NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCkBAIC0xMTU5NCw2
ICsxMTYwNCw4IEBACiAJCQkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11
bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5
MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTA3NDI1MzhCMkNBMDA5OUYxNzEgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBFQjI1
M0NFQURCMDA5OUYxNzEgLyogV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNp
c0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2MDM0QTAxQUNCMzRENjAwNjI2NTQ5IC8q
IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1MkMwRjgx
QTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJhMTJiYjViNDdmMjk2N2VlNTAzMjM5NDZhMjRjNTlmYjA2YWVmYjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGUuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+
IFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24oKSk7Cit9CisKK3Zv
aWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpzdGFydChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGlu
dW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKQorewor
ICAgIGF1dG8gcmVxdWVzdCA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdDo6Y3Jl
YXRlKGNsaWVudCwgbGFuZywgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0
aXZlcyk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOwor
ICAgIHByb2Nlc3NQZW5kaW5nUmVxdWVzdCgpOworfQorCit2b2lkIFdlYlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbjo6cmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50JiBjbGllbnQpCit7CisgICAgYXV0byBwZW5kaW5nUmVxdWVz
dHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1JlcXVlc3RzLCB7IH0pOworICAgIHdoaWxlICgh
cGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHJlcXVlc3QgPSBwZW5k
aW5nUmVxdWVzdHMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmIChyZXF1ZXN0LT5jbGllbnQoKSA9
PSAmY2xpZW50KSB7CisgICAgICAgICAgICBjbGllbnQuZGlkRW5kKCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9wZW5kaW5nUmVxdWVzdHMuYXBwZW5kKFdURk1v
dmUocmVxdWVzdCkpOworICAgIH0KK30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmIGNsaWVudCkKK3sK
KyAgICBpZiAoY3VycmVudENsaWVudCgpID09ICZjbGllbnQpIHsKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTcGVlY2hSZWNvZ25pdGlvblN0b3AoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgcmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50
KGNsaWVudCk7Cit9CisKK3ZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjphYm9y
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChj
dXJyZW50Q2xpZW50KCkgPT0gJmNsaWVudCkgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OlNwZWVjaFJlY29nbml0aW9uQWJvcnQoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZW1vdmVQZW5kaW5nUmVxdWVzdEZyb21DbGllbnQoY2xpZW50KTsKK30K
KworSVBDOjpDb25uZWN0aW9uKiBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246Om1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2Nlc3NQZW5kaW5nUmVxdWVzdCgpCit7CisgICAgaWYg
KG1fY3VycmVudFJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BlbmRpbmdS
ZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHdoaWxlICghbV9wZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpICYmICFjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIG1fY3Vy
cmVudFJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlRmlyc3QoKS5wdHIoKTsKKworICAg
IGlmIChjdXJyZW50Q2xpZW50KCkpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6U3BlZWNoUmVjb2duaXRpb25TdGFydChtX2N1cnJlbnRSZXF1ZXN0LT5kYXRhKCkpKTsK
K30KKwordm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OmNvbXBsZXRlQ3VycmVu
dFJlcXVlc3QoT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAg
aWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byog
Y2xpZW50ID0gY3VycmVudENsaWVudCgpKQorICAgICAgICBjbGllbnQtPmRpZEVuZChlcnJvcik7
CisKKyAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gbnVsbHB0cjsKK30KKwordm9pZCBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OnByb2dyZXNzRGlkVXBkYXRlKGNvbnN0IFNwZWVjaFJlY29n
bml0aW9uUHJvZ3Jlc3NVcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBpZiAoIW1fY3VycmVudFJlcXVl
c3QpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OnByb2dyZXNzRGlkVXBkYXRlIHJlY2VpdmVzIHVwZGF0ZSB3aGVuIG5vdCBwcm9jZXNzaW5nIHJl
cXVlc3RzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHR5cGUgPSB1cGRh
dGUudHlwZSgpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRh
dGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVU
eXBlOjpFbmQpIHsKKyAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCh1cGRhdGUub3B0aW9u
YWxFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNsaWVudCA9
IGN1cnJlbnRDbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlN0YXJ0
KQorICAgICAgICBjbGllbnQtPmRpZFN0YXJ0KCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVj
b2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpCisgICAgICAgIGNsaWVudC0+
ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0
aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpTb3VuZFN0YXJ0KQorICAgICAgICBjbGllbnQtPmRpZFN0
YXJ0Q2FwdHVyaW5nU291bmQoKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblBy
b2dyZXNzVXBkYXRlVHlwZTo6U3BlZWNoU3RhcnQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RhcnRD
YXB0dXJpbmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dy
ZXNzVXBkYXRlVHlwZTo6U3BlZWNoRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJp
bmdTcGVlY2goKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblByb2dyZXNzVXBk
YXRlVHlwZTo6U291bmRFbmQpCisgICAgICAgIGNsaWVudC0+ZGlkU3RvcENhcHR1cmluZ1NvdW5k
KCk7CisgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6
OkF1ZGlvRW5kKQorICAgICAgICBjbGllbnQtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAg
IGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGVUeXBlOjpOb01hdGNo
KQorICAgICAgICBjbGllbnQtPmRpZEZpbmROb01hdGNoKCk7CisgICAgaWYgKHR5cGUgPT0gU3Bl
ZWNoUmVjb2duaXRpb25Qcm9ncmVzc1VwZGF0ZVR5cGU6OlJlc3VsdCkgeworICAgICAgICBBU1NF
UlQodXBkYXRlLm9wdGlvbmFsUmVzdWx0cygpKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZl
UmVzdWx0KCp1cGRhdGUub3B0aW9uYWxSZXN1bHRzKCkpOworICAgIH0KK30KKworU3BlZWNoUmVj
b2duaXRpb25DbGllbnQqIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6Y3VycmVudENs
aWVudCgpCit7CisgICAgaWYgKCFtX2N1cnJlbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHJldHVybiBtX2N1cnJlbnRSZXF1ZXN0LT5jbGllbnQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFlOWI2MTk5OTg5ZWE3NDY3MjJkN2Rm
YzY4YzkxOTA5Y2Y4ZTlkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BF
RUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25FcnJvcjsK
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUHJvZ3Jlc3NVcGRhdGU7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24gZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24+IGNyZWF0ZSgpOworCitwcml2YXRlOgor
ICAgIC8vIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgorICAgIHZvaWQgc3RhcnQoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmLCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29u
dGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzKSBm
aW5hbDsKKyAgICB2b2lkIHN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DbGllbnQmKSBm
aW5hbDsKKyAgICB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50Jikg
ZmluYWw7CisKKyAgICAvLyBNZXNzYWdlU2VuZGVyCisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNz
YWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQorCisgICAgdm9p
ZCBwcm9jZXNzUGVuZGluZ1JlcXVlc3QoKTsKKyAgICB2b2lkIGNvbXBsZXRlQ3VycmVudFJlcXVl
c3QoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4pOworICAgIHZvaWQg
cmVtb3ZlUGVuZGluZ1JlcXVlc3RGcm9tQ2xpZW50KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2xpZW50Jik7CisgICAgdm9pZCBwcm9ncmVzc0RpZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblByb2dyZXNzVXBkYXRlJik7CisKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNsaWVudCogY3VycmVudENsaWVudCgpOworCisgICAgRGVxdWU8UmVmPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIFJlZlB0
cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG1fY3VycmVudFJlcXVlc3Q7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzUzYjQ2NTFkZmYwMDQ5
OTVhZTcwNjNjZWE5Y2FmOTJjZTQzYzI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIu
Y3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFNQ
RUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyPiBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOjpjcmVhdGUo
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIpOworfQorCitXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24mIFdlYlNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI6OnNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbigpCit7Cisg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIG1fY29ubmVjdGlvbiA9IFdlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gKm1fY29ubmVjdGlv
bjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNjN2ZiYmUwODZlYjUzMWNl
MTc3ZDRmM2UxMjZjZmFiM2ViYTYzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25Qcm92aWRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOworCitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4gY3JlYXRl
KCk7CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uJiBzcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24oKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBXZWJTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyKCkgPSBkZWZhdWx0OworICAgIFJlZlB0cjxXZWJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBiM2E4MTUwOGQ0MTg0NmVhMmU5YWJlOWE2MzlhYTdiMWM0ODk2M2QwLi5mOTBl
ZTRkZDNmNjYyOGI4YWFmNGZmMzE0Yjc4MGE4OGMzNDE4YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI3LDYgKzEyNyw4IEBACiAjaW5j
bHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdv
cmtlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
V2ViVG91Y2hFdmVudC5oIgpAQCAtNTI2LDYgKzUyOCwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgfSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciA9ICZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKCk7CisjZW5kaWYKKyAg
ICAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5z
cGVlY2hTeW50aGVzaXNDbGllbnQgPSBtYWtlVW5pcXVlPFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dD4oKnRoaXMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggZGZhNTdjNjU1YWRhN2NmOTcxODliNzU3YzU5YWE5MDE5NTBhYTllOC4uZTFlOTMyYjA5
NWZjOGM3Mjc3MDg1NDVlZDU2OTVkNTkxODU3NDkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2Vy
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW0uaCIKKyNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYnNpdGVE
YXRhVHlwZS5oIgpAQCAtMjQ1LDYgKzI0Niw5IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
cihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xvY2tl
ZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdl
YlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI6OmNyZWF0ZSgpKQorI2VuZGlmCiB7CiAgICAgLy8g
SW5pdGlhbGl6ZSBvdXIgcGxhdGZvcm0gc3RyYXRlZ2llcy4KICAgICBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IGU4OTQ4ZTkxN2NlMjk1NDdlNGUwMTdhMTVlNGEyMDBkZjEzOTgxNzMuLjA1ZGE1MzJjZjI1
MGNhYWY4NTdlNjkwYjBjZThkOTgzZGU3NTA3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaApAQCAtMTI1LDYgKzEyNSw3IEBAIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2Vi
TG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7
CitjbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyOwogc3RydWN0IFVzZXJNZXNzYWdl
Owogc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnM7CkBAIC0zNTgsNiArMzU5LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFdyaXRlVG9QYXN0ZWJvYXJkQXN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisg
ICAgV2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciYgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cigpIHsgcmV0dXJuIG1fc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5nZXQoKTsgfQorI2VuZGlm
CisgICAgCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpA
QCAtNjkzLDYgKzY5OCwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV92cDlEZWNvZGVyRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZwOVNXRGVjb2RlckVuYWJsZWQgeyBmYWxzZSB9Owog
I2VuZGlmCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorICAgIFJlZjxXZWJTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPiBtX3NwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
ZWJhNWRhODAxYTI3ZmY5OWIwNjc3MTAzNTFlYjI0NjhmYTY5NDAwYi4uN2VjNTA0NjQ1MzczNWMy
NTIyMzJkMjcxNTg0NGU4NDg3YTdjMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yODks
NiArMjg5LDcgQEAKICNkZWZpbmUgV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU0luZGl2
aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NJ
bmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENvbnRh
Y3RQaWNrZXJBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRhY3RQaWNrZXJBUElF
bmFibGVkIgorI2RlZmluZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgogCiAvLyBUaGUgcHJlZmVyZW5j
ZSBrZXlzIGJlbG93IHRoaXMgcG9pbnQgYXJlIGRlcHJlY2F0ZWQgYW5kIGhhdmUgbm8gZWZmZWN0
LiBUaGV5IHNob3VsZAogLy8gYmUgcmVtb3ZlZCB3aGVuIGl0IGlzIGNvbnNpZGVyZWQgc2FmZSB0
byBkbyBzby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCmluZGV4IDJhN2U4ZTRiN2U0NTQyMWM2MGU2NTY2NDdiYzMzYWY4YjY3MmU3ZTgu
LmExMDgzOGNlOTFmYjU2NjZlOTM4MTZhZWUwNWUwMmMzYjBiZDAxZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzM3NSw2
ICszMzc1LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0luZGl2aWR1YWxUcmFu
c2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKXNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5
OldlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2
b2lkKXNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYg
X3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVyZW5j
ZXMgKFdlYlByaXZhdGVPYnNvbGV0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDliYzEwY2E3MjUxMDM1
N2I3ZGY2ZGM1ZmExNjRmOGE3ODA5OGIwMDkuLjY2N2NjNzcxNTM5NjllOTU3NDk3ODc1MDhmZDkx
OWY0OGRmOTIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzQ4LDYgKzM0OCw3IEBAIGV4dGVybiBO
U1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0
aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVJl
Y29yZGVyRW5hYmxlZDopIEJPT0wgX21lZGlhUmVjb3JkZXJFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgQ1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGFjdFBpY2tlckFQSUVuYWJsZWQ7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ7CiBAZW5kCiAK
IEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVEZXByZWNhdGVkKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc4ZTk3MmNkNzdh
ZjRhOWNkZGFhMDc5ZmE2MWU0YTBhMDVjMDFhNmMuLjJkOWRlNDI0MjQzZTRkODljODM4NjkyMDk0
NTdkMjYyODhkNzc4NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisgICAgICAgIChyZXNldFdlYlByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMC0xMC0xOCAgTGF1cm8gTW91cmEgIDxs
bW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICB3ZWJraXRjb3JlcHk6IEFsbG93IG9uZSBwYWNr
YWdlIHRvIHJlcXVpcmUgYW5vdGhlciBwYWNrYWdlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
aAppbmRleCA4NzhiNjJhYTUxYjQxMWMwNzJmNTY3ODIxNDRjNzRlYzhiN2Y2ZDk2Li42ODc0NzM4
ZGY5OWZkNzVjZGU1MTA0MjEyNjg4MTVkMGUwM2NkZGU2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmgKQEAgLTY5LDYgKzY5LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29s
IGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVEcmFn
RGVzdGluYXRpb25BY3Rpb25Mb2FkIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVdlYlNRTCB7
IHRydWUgfTsKKyAgICBib29sIGVuYWJsZVNwZWVjaFJlY29nbml0aW9uIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbGF5ZXJCYWNrZWRXZWJWaWV3IHsgZmFsc2UgfTsKICAgICBib29sIHVzZUVwaGVtZXJh
bFNlc3Npb24geyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmlu
ZGV4IDdiYTkwODNlZjEzZTkxMTAyNjk1OWZkYzU0ZjA0ZmUwMTU2YmQwNDYuLmIyODdlOTA4ZGU0
ZmQzYjFkN2E0ZGZkYTk2NWJiYmY5ZGUxN2EwZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg0MSw2ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCBlbmFi
bGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAg
W3ByZWZlcmVuY2VzIHNldEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVk
OllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJs
ZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOwor
ICAgIFtwcmVmZXJlbmNlcyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6WUVTXTsKIH0KIAog
Ly8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCkBAIC05NjMsNiArOTY0LDggQEAgc3RhdGljIHZv
aWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBbcHJlZmVy
ZW5jZXMgc2V0V2ViU1FMRW5hYmxlZDpZRVNdOwogCisgICAgW3ByZWZlcmVuY2VzIHNldFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZDpZRVNdOworCiAgICAgW1dlYlByZWZlcmVuY2VzIF9jbGVhck5l
dHdvcmtMb2FkZXJTZXNzaW9uXTsKICAgICBbV2ViUHJlZmVyZW5jZXMgX3NldEN1cnJlbnROZXR3
b3JrTG9hZGVyU2Vzc2lvbkNvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbl07CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWE3ZDE2N2Y2OTc0YzFi
NGNlMDdhYzVmOGMzNTFiZmI4YzM3NWQ1Ni4uNmM3N2FjYzAxMTc2NjlkMjdmMjA5NWNlZWEzZDZk
MTdjZWE0YjQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVj
b2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHNwZWVjaC9zcGVlY2hyZWNvZ25p
dGlvbi1hcGktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzcGVlY2gvc3BlZWNocmVj
b2duaXRpb24tYXBpLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEwLTEzICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFNhbml0aXplIHRoZSB1c2FnZSBv
ZiBvdmVycmlkZSBzaXplcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTdlZDkwYWU2ZWI4NGRkODk0
YWRiOTVlMGJmODdhMTZlYTliMGI2MC4uMjFkMTU3NGI4N2YyM2Q4NWRjNTJiYTg0YjRkNzZjY2Q2
YzlmMTdlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC03Niw2ICs3Niw3IEBAIGVkaXRpbmcvcGFz
dGVib2FyZC9kb20tcGFzdGUgWyBTa2lwIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9tYWMgWyBTa2lw
IF0KIGZhc3QvbWVkaWEvaW9zIFsgU2tpcCBdCiBmYXN0L2RvbS9SYW5nZS9tYWMgWyBTa2lwIF0K
K3NwZWVjaCBbIFNraXAgXQogCiAjIFJlcXVpcmVzIGFzeW5jIG92ZXJmbG93IHNjcm9sbGluZwog
Y29tcG9zaXRpbmcvc2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xsIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjMWZjZWY1YTA3ODAz
MDljMDVmOGY2MmM4ZTFkNjNjNDdjODE0YTUuLmFlY2QyNjhlYjdkNTYxNmM5ZWRlMzQxYzhiYWUy
YWUzOTY4OWRkYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0zNCw2ICszNCw4IEBAIGh0dHAvdGVzdHMvZ3ppcC1jb250ZW50LWVuY29kaW5nIFsgUGFz
cyBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9kb2N1bWVu
dC1sZXZlbC10b3VjaG1vdmUtZXZlbnQtbGlzdGVuZXItcGFzc2l2ZS1ieS1kZWZhdWx0Lmh0bWwg
WyBQYXNzIF0KIAorc3BlZWNoIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBiMzhkMzQwZGE0ZTAxNDExMTBhYWUwYzliYmEyZWMzZmUzN2U2NGEy
Li44ZWE0YTgzNjJiNTgxNDFkNGE1MWMyYjAxZGFmODdhZmUzZjQ1ZDQ0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3ZWJraXQu
b3JnL2IvMTgxOTY0IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUtemVyby13
aWR0aC1qb2luZXIuaHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK3NwZWVjaCBb
IFBhc3MgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0
Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1h
cGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFw
aS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJiY2I4NjNhYjY4Nzg4MjJmOTNiN2YyNGNkY2U3
Y2Q5MWJmNTJmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hy
ZWNvZ25pdGlvbi1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBzcGVlY2hS
ZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIGlzIGRlZmluZWQuCitQQVNTIHNw
ZWVjaFJlY29nbml0aW9uLmxhbmcgaXMgZGVmaW5lZC4KK1BBU1Mgc3BlZWNoUmVjb2duaXRpb24u
Y29udGludW91cyBpcyBkZWZpbmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5pbnRlcmltUmVz
dWx0cyBpcyBkZWZpbmVkLgorUEFTUyBzcGVlY2hSZWNvZ25pdGlvbi5tYXhBbHRlcm5hdGl2ZXMg
aXMgZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorTWFrZSBzdXJlIFNwZWVjaFJlY29nbml0b24gQVBJIGV4aXN0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbCBiL0xheW91dFRl
c3RzL3NwZWVjaC9zcGVlY2hyZWNvZ25pdGlvbi1hcGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmU5OTU3
ZDZjODc4YTZlNzc3N2U3YzJjNWI3ZjRmOGY3Mzc0Y2UxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3BlZWNoL3NwZWVjaHJlY29nbml0aW9uLWFwaS5odG1sCkBAIC0wLDAgKzEsMTMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgc2hvdWxkQmVEZWZpbmVkKCJz
cGVlY2hSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIik7CisgICAgc2hvdWxk
QmVEZWZpbmVkKCJzcGVlY2hSZWNvZ25pdGlvbi5sYW5nIik7CisgICAgc2hvdWxkQmVEZWZpbmVk
KCJzcGVlY2hSZWNvZ25pdGlvbi5jb250aW51b3VzIik7CisgICAgc2hvdWxkQmVEZWZpbmVkKCJz
cGVlY2hSZWNvZ25pdGlvbi5pbnRlcmltUmVzdWx0cyIpOworICAgIHNob3VsZEJlRGVmaW5lZCgi
c3BlZWNoUmVjb2duaXRpb24ubWF4QWx0ZXJuYXRpdmVzIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzxwPk1ha2Ugc3Vy
ZSBTcGVlY2hSZWNvZ25pdG9uIEFQSSBleGlzdHMuPC9wPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411820</attachid>
            <date>2020-10-19 17:49:54 -0700</date>
            <delta_ts>2020-10-19 23:13:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201019174952.patch</filename>
            <type>text/plain</type>
            <size>84112</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlYjA1ZjJkNjNhMzEyZmFkOTYzMTli
YWY0MDFmMzAxZmY4YWJkYjEuLjE4NWE4YWRlZTNlYzI3ZGRmODQ3OGI2YTFkZTA5YzA0YWQ0Njky
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oOgorCiAyMDIwLTEwLTE5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgog
CiAgICAgICAgIE1vdmUgcmVtYWluaW5nIFdlYiBBbmltYXRpb25zIHJ1bnRpbWUtZW5hYmxlZCBm
ZWF0dXJlcyB0byBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU0YmYyMzg2YTJiNGJmMDhhZTg1NDUx
NmY4NDA0NWFkZWRkODMwYzMuLjRiMzRhNTk5YjUwNWMwNWU1NDMyNjcxNmY1MWRhMzcxYmUzZmVm
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29n
bml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiaW5kaW5ncyBjb2RlIGFuZCBh
IGZlYXR1cmUgZmxhZyBmb3IgU3BlZWNoUmVjb2duaXRpb24uCisgICAgICAgIFNwZWM6IGh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vc3BlZWNoLWFwaS8jc3BlZWNocmVjby1zZWN0aW9uLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW5jbHVkZXMgYWxsIGludGVyZmFjZXMgb2YgU3BlZWNoUmVjb2duaXRp
b24sIGV4Y2VwdCBTcGVlY2hHcmFtbWFyIGFuZCBTcGVlY2hHcmFtbWFyTGlzdC4gV2UgaGF2ZSBu
b3QKKyAgICAgICAgZGVjaWRlZCB3aGF0IGdyYW1tYXIgZm9ybWF0IGFuZCB0eXBlcyB3ZSBhcmUg
Z29pbmcgdG8gc3VwcG9ydCwgd2hpY2ggbWF5IGRlcGVuZCBvbiB0aGUgc3BlZWNoIHJlY29nbml0
aW9uIAorICAgICAgICBzZXJ2aWNlIHdlIHdpbGwgdXNlLiBXZSBjYW4gYWRkIGdyYW1tYXIgaW50
ZXJmYWNlcyBsYXRlciB3aGVuIHdlIGhhdmUgYSBjbGVhcmVyIGlkZWEuIEJlZm9yZSB0aGF0LCB3
ZSBhcmUgbGlrZWx5CisgICAgICAgIHRvIHVzZSB3aGF0ZXZlciBncmFtbWFyIHNwZWVjaCByZWNv
Z25pdGlvbiBzZXJ2aWNlIGhhcyBieSBkZWZhdWx0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpz
dGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpz
dG9wUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFi
b3J0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmFj
dGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b246OmxhbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNl
dExhbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNvbnRpbnVvdXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldENvbnRpbnVv
dXMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmludGVyaW1SZXN1bHRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRJbnRlcmlt
UmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bWF4QWx0ZXJu
YXRpdmVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRN
YXhBbHRlcm5hdGl2ZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50ZXJm
YWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRl
bSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdDo6aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGw6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6
CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbjoKKwogMjAyMC0xMC0xOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxh
d2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gQ2xlYW4gdGhlIERpc3BsYXlM
aXN0IHJlY29yZGluZyBvZiB0aGUgTmF0aXZlSW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzFkMThkOGU5NTk2
YmNlNTFkNjMzZDM0MzMwMTczYjk2MTU3MDY4MS4uZDRjYWY3MzlkYzVlZDJhZDE5ZTIwMWZkYTg0
MTk4ZGE0MTMxNzJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0xOSAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlcy50eHQ6
CisKIDIwMjAtMTAtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENsZWFuIHRoZSBEaXNwbGF5TGlzdCByZWNvcmRp
bmcgb2YgdGhlIE5hdGl2ZUltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNTUz
YzA0YTczN2MzZDcxYTk4YjZhMjUxNGQ4YWY1NDAyNDkzNjQ5OC4uZDY1NDljZjU2OTY1NjkzYWIx
ZmJjYjllZGVlN2U4NDM0YWMxZWY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVu
Y2VzIHNwZWVjaFJlY29nbml0aW9uRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaDoKKwogMjAyMC0xMC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTQzMCk6IEZpeCAtV3N0cmlu
Zy1jb25jYXRlbmF0aW9uIHdhcm5pbmcgZnJvbSBvcGVuIHNvdXJjZSBjbGFuZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAppbmRleCBmNjU2NmM1ODAwMTdlM2RmOTlhZWFlMmY1ZGYzMjY5ZWYx
MjIxNjBiLi44ZjgxODliY2IwZWJkZTM4ZTliMDM3Nzc5MzdkYzdkZTliYjZlNDNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmlt
ZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNzI4LDYgKzcyOCwxOCBAQCBTaG91bGREZWZlckFz
eW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JGaXJzdFBhaW50OgogICAg
IFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiB0cnVlCiAKK1NwZWVjaFJlY29nbml0aW9uRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNwZWVjaFJlY29nbml0aW9u
IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNwZWVjaFJlY29nbml0
aW9uIGZyb20gV2ViU3BlZWNoIEFQSSIKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2Fj
eToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBp
cyBlbmFibGVkIHdoZW4gRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgaXMgdHJ1ZSBpbiBX
ZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGF0IGZvciBXZWJLaXRM
ZWdhY3kgYXMgd2VsbC4KIFNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZDoKICAgdHlwZTogYm9v
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IDkzZmFmZGExMTRjOTkyYjY0
MzA5NWQxYjJiOTc0NjQyZjM2ODhjYjAuLmRhOTZkZWY5OTc4ODBkZjRiNTk4OGNkMzY5ZWE2YTk1
NDA5YmZkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTQyMSw2ICs0
MjEsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyAxCiAjZW5k
aWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfUkVDT0dOSVRJT04pICYmICFQTEFURk9S
TShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9SRUNPR05JVElPTiAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDEKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4
ZDE2MjNhLi4xNjA3N2RlNjgyMTgwNjM4NjdlYjJmOGM0Mjc5OWU1M2YyMjQ5OThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDM2LDYgKzQzNiwxNCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAg
ICAgTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxi
YWNrLmlkbAogCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCisgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKKyAgICBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaWRsCisKICAgICBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoU3ludGhl
c2lzLmlkbAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFl
YWFmYzA0MzlmYTBiMmE3NmMyOTAuLjAyM2E5ZGZjZDM2M2QyZmQ2ZjVkMDFkNDZjZDE2MzYyNmY0
NWM5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdApAQCAtMjc5LDYgKzI3OSwxMyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3F1b3RhL1dv
cmtlck5hdmlnYXRvcitTdG9yYWdlUXVvdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3Jl
bW90ZXBsYXliYWNrL0hUTUxNZWRpYUVsZW1lbnQrUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0
eUNhbGxiYWNrLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGU5NDcyOTA2MjIwODkxYWNkNjNi
MDE5YjBmOTNhNjFhYTYwYjM0MGQuLmYwOTRiZjk2ZGYyODVlOWY3NTdhMzQzYzk0YmZmNTFjMTg2
ZTIxZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CkBAIC0yMTEwLDYgKzIxMTAsMjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZl
ckxpc3QuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aFN5bnRoZXNpcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5YjEzNi4uYjhjODJmOGJk
MzdmOGQwOTQ4NzUyMzAzMjA5OThiNzk0OGEzZjUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0zMDYsNiArMzA2LDEzIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgXAorCSQoV2Vi
Q29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgXAor
CSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhR
dWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Db3Vu
dFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGYy
NzQ3Y2FmNzE0Mzk2ODY3ZmM2YTY3YjljNzA0MjY5NThmNGE0ODAuLjVjMWY3OWZjZjNiNGI5NGEy
MDIwMjhkOWYwYWEzNzE1OGRlYTUzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTEwLDYgKzEx
MCw5IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVz
L3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0RGF0YS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0SWRlbnRpZmllci5oCisKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAgICAgTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWUyYjMw
ZTA4MjgzZDBhZDdlMjQ2ODVlMGI5ZjIzM2JhYmEwMDYzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAg
KzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb24uaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisKK1JlZjxTcGVlY2hSZWNvZ25p
dGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKK30K
KworU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sKKyAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNw
ZW5zaW9uKQoreworICAgIGFib3J0UmVjb2duaXRpb24oKTsKK30KKworRXhjZXB0aW9uT3I8dm9p
ZD4gU3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24oKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCit7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24oKQoreworfQorCitj
b25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTZkZmRjYzQ2ZjU1M2QxOWMzODNkYmI2
NzZjM2FjM2VjYThkMWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbiA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVk
PFNwZWVjaFJlY29nbml0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgIHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uKTsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKKwor
ICAgIGNvbnN0IFN0cmluZyYgbGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQorICAgIHZv
aWQgc2V0TGFuZyhjb25zdCBTdHJpbmcmIGxhbmcpIHsgbV9sYW5nID0gbGFuZzsgfQorCisgICAg
Ym9vbCBjb250aW51b3VzKCkgY29uc3QgeyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgdm9p
ZCBzZXRDb250aW51b3VzKGJvb2wgY29udGludW91cykgeyBtX2NvbnRpbnVvdXMgPSBjb250aW51
b3VzOyB9CisKKyAgICBib29sIGludGVyaW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRl
cmltUmVzdWx0czsgfQorICAgIHZvaWQgc2V0SW50ZXJpbVJlc3VsdHMoYm9vbCBpbnRlcmltUmVz
dWx0cykgeyBtX2ludGVyaW1SZXN1bHRzID0gaW50ZXJpbVJlc3VsdHM7IH0KKworICAgIHVpbnQ2
NF90IG1heEFsdGVybmF0aXZlcygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVzOyB9
CisgICAgdm9pZCBzZXRNYXhBbHRlcm5hdGl2ZXModW5zaWduZWQgbWF4QWx0ZXJuYXRpdmVzKSB7
IG1fbWF4QWx0ZXJuYXRpdmVzID0gbWF4QWx0ZXJuYXRpdmVzOyB9CisKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzdGFydFJlY29nbml0aW9uKCk7CisgICAgdm9pZCBzdG9wUmVjb2duaXRpb24oKTsK
KyAgICB2b2lkIGFib3J0UmVjb2duaXRpb24oKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvbihEb2N1bWVudCYpOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0OworICAgIHZvaWQgc3VzcGVuZChS
ZWFzb25Gb3JTdXNwZW5zaW9uKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJv
b2wgbV9jb250aW51b3VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBm
YWxzZSB9OworICAgIHVpbnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGQwM2E2NTI3
MDQyMjJlOTlhYzIwMTdmYjA2Njk1ZWI3MzExMWZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCkBAIC0wLDAgKzEs
NTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIENvbmRpdGlv
bmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29n
bml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlv
biB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcigpOworCisgICAgYXR0cmli
dXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRpbnVvdXM7Cisg
ICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJlc3VsdHM7CisgICAgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisgICAgW01heVRocm93RXhjZXB0aW9uLCBJbXBs
ZW1lbnRlZEFzPXN0YXJ0UmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdGFydCgpOworICAgIFtJbXBs
ZW1lbnRlZEFzPXN0b3BSZWNvZ25pdGlvbl0gdW5kZWZpbmVkIHN0b3AoKTsKKyAgICBbSW1wbGVt
ZW50ZWRBcz1hYm9ydFJlY29nbml0aW9uXSB1bmRlZmluZWQgYWJvcnQoKTsKKworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb3N0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb25zb3VuZHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zcGVlY2hzdGFy
dDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoZW5kOworICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25zb3VuZGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
YXVkaW9lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VsdDsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ubm9tYXRjaDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uZXJyb3I7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXJ0OworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMTU4NDM4NmY0ZWRjMWVlMTlkMTAxYmRiODZmOGY4YmZlYjhiM2I5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgi
CisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVh
dGUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZShXVEZNb3ZlKHRyYW5z
Y3JpcHQpLCBjb25maWRlbmNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6
OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91Ymxl
IGNvbmZpZGVuY2UpCisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNjcmlwdCkKKyAgICAsIG1fY29u
ZmlkZW5jZShjb25maWRlbmNlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYzYwZTEyNDdkZjA1MmZj
NDJlMmQ1Yzk0NDgwY2ZmODQwYjZlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9S
RUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgZmluYWwg
OiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IGNyZWF0
ZShTdHJpbmcmJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJpbmcg
dHJhbnNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNjcmlwdDsgfQorICAgIGRvdWJsZSBj
b25maWRlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWRlbmNlOyB9CisKK3ByaXZhdGU6Cisg
ICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZShTdHJpbmcmJiB0cmFuc2Ny
aXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJpbmcgbV90cmFuc2NyaXB0OworICAg
IGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmEyMDQ3ODM4MTU1
ZTQ1YWQ5OTIyYTkxMjhhYjAwMTAzZDVjYjRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVD
T0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFbmFibGVkQnlT
ZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IGNvbmZp
ZGVuY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTAyYjljMTRmNWM1OWY1
MTE5MTAxMTU5Mzc2ZDRmMmFhMWE0NjRjZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9S
RUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSA9IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNDE5ZDQzODUzMWQyNWRh
OTBhZGE3YWQwODQzMzkwN2MzNWQ3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJ
T04sCitdIGVudW0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgeworICAgICJuby1zcGVlY2gi
LAorICAgICJhYm9ydGVkIiwKKyAgICAiYXVkaW8tY2FwdHVyZSIsCisgICAgIm5ldHdvcmsiLAor
ICAgICJub3QtYWxsb3dlZCIsCisgICAgInNlcnZpY2Utbm90LWFsbG93ZWQiLAorICAgICJiYWQt
Z3JhbW1hciIsCisgICAgImxhbmd1YWdlLW5vdC1zdXBwb3J0ZWQiCit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmMzE4MmMxOGMxMjRlMjUyZjdmMTE3MThjMjA1ZTA2
NWZiZWJhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVh
dGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJy
b3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgZXJyb3IsIG1lc3NhZ2UpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZXJyb3Io
aW5pdC5lcnJvcikKKyAgICAsIG1fbWVzc2FnZShpbml0Lm1lc3NhZ2UpCit7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgOiBFdmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwg
bV9tZXNzYWdlKG1lc3NhZ2UpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9OyAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI1
ZmZmMWNmZjAzNDk5MWRmMmIzMTVmYjExNGI2MTVhODRiOGMxZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7
CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAg
fTsKKworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUo
Y29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5v
KTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3I7IH0KKyAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVz
c2FnZTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZSwgY29uc3QgU3RyaW5nJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgbV9l
cnJvcjsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdmNTlj
N2E1N2I4MjA3ZDgwMTlhODRmZmY1MTNlYWFiMGRiZTAxOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVF
Q0hfUkVDT0dOSVRJT04sCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwK
KyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIERPTVN0cmluZyBtZXNzYWdlID0gIiI7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTljODhiMmRhYjlhMjE3ZTcxNTFhMmZkNjYyZjEw
NjEzMTgyZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
U3BlZWNoUmVjb2duaXRpb25FdmVudCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29u
c3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkpOwor
fQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6
Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmIHJlc3VsdHMpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCByZXN1bHRJbmRleCwg
V1RGTW92ZShyZXN1bHRzKSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQs
IElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQp
CisgICAgLCBtX3Jlc3VsdEluZGV4KGluaXQucmVzdWx0SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMo
aW5pdC5yZXN1bHRzKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIHVpbnQ2NF90IHJlc3VsdEluZGV4
LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmIHJlc3VsdHMpCisgICAgOiBF
dmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
CisgICAgLCBtX3Jlc3VsdEluZGV4KHJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRzKFdURk1v
dmUocmVzdWx0cykpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRp
b25FdmVudEludGVyZmFjZVR5cGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiNjE5NzdkYjNhZmE2MjQ2NzJjYzE1MTk1ZWU0
NWNmMjAzYTgzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5j
bHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25FdmVudCk7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAg
ICAgICB1aW50NjRfdCByZXN1bHRJbmRleDsKKyAgICAgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4gcmVzdWx0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJ
c1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgs
IFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgdWludDY0X3Qg
cmVzdWx0SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdEluZGV4OyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KiByZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRz
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBB
dG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2duaXRp
b25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZl
bnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHVpbnQ2NF90IG1fcmVzdWx0SW5k
ZXg7CisgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gbV9yZXN1bHRzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2QwZDgxNjA0MmUzOWQ2ZmU2Zjc1MmJmNjMyYzI2ZDIyZDE0Y2Q2YQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVj
b2duaXRpb24sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVj
aFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CisKK2RpY3Rpb25hcnkgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcg
cmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGFlMDAxMDc3NzZl
N2QxOWYzZjU3ZDZkNTAyYmNjN2Y0ZjAwOTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAg
KzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04p
CisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFs
dGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUoYWx0ZXJuYXRpdmVzKSwgaXNGaW5hbCkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQoVmVj
dG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJv
b2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0ZXJuYXRpdmVzKFdURk1vdmUoYWx0ZXJuYXRpdmVzKSkK
KyAgICAsIG1faXNGaW5hbChpc0ZpbmFsKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29u
c3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpKSA/IG1fYWx0
ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTMyMzU5ZTgwZGE0OThh
ZjM2MmJkZjY5NThlMDI3ZTZkMWRkYzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09H
TklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVp
bnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQor
ICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVm
PFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29s
IG1faXNGaW5hbCB7IGZhbHNlIH07Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMjY1YjZhYjdlMDEzNjRjNzg5NzVlMjg4YTlkYTdkNDAzNjljYTFjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29u
ZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNo
UmVjb2duaXRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2Vk
PVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgeworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmluYWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWI5ZTdhMDYwNWYxY2Q1MDliMzYzNzkyZmMzMTJiMTIyZmE0ODM2Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qu
aCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoKSk7Cit9CisKK1JlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6
Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFdURk1v
dmUobGlzdCkpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4g
KGluZGV4IDwgbV9saXN0LnNpemUoKSkgPyBtX2xpc3RbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmFkZChTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCYgcmVzdWx0KQoreworICAgIG1fbGlzdC5hcHBlbmQobWFrZVJlZihyZXN1bHQp
KTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKKyAg
ICA6IG1fbGlzdChXVEZNb3ZlKGxpc3QpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTk4YTkyNDBjOTAw
YzQ4ZGJmNDlmMzQxNzgyNjA2NmZlZTk2NTQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0
ZSgpOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUo
VmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOworCisgICAgYm9vbCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCisgICAgdm9pZCBhZGQoU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QoKSA9IGRlZmF1bHQ7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIFZlY3RvcjxS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3
YmFiZThmZmEzNTgyYTk1MTJhN2Y3MGFhODZlMzFmNjE0OTM3MzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9
U1BFRUNIX1JFQ09HTklUSU9OLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRp
b24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdwor
XSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAppbmRleCA5Yzg4NzUx
ZTNjNjgwNjQxZGQzZDBiNDYzYTU4NWY4NTliMDljMjczLi5mZDVjNDQ5MTQwMWQyM2QyMWNjYzBh
Zjk1Mzk4ZDNlOTQ5OTRiYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBu
YW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhh
MWNjNGJmN2NhN2Y1YzNlZC4uOTRmNDkxYTA2OGFiMjY1NzljZTAxY2Y3NzMxMWYyNzYyZGI4MjZj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4MSw2ICsxODEsMTIgQEAgTW9kdWxlcy9waWN0dXJlaW5w
aWN0dXJlL0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcAogTW9kdWxlcy9waWN0dXJlaW5w
aWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAogTW9kdWxlcy9waWN0
dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBs
YXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAor
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzRXZlbnQuY3BwCkBAIC0zNDg4LDYgKzM0OTQsMTMgQEAgSlNTaGFyZURhdGEuY3Bw
CiBKU1Nsb3RhYmxlLmNwcAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3Qu
Y3BwCitKU1NwZWVjaFJlY29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNw
cAogSlNTcGVlY2hTeW50aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTM5YjcxYzYxMDVkZjQ2N2IzYjMwZjUy
MjliN2QwZDA1Mjk3Yjc1Yi4uZGYwM2NiNTRjMzZiY2FmMDZiMjUxY2EzMjZkZGE4ZmFlYWRlZGE3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjczMCw2ICsyNzMwLDEzIEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAv
KiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQzQ0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9
OwogCQk5MzQ0MkM5RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlE
MEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5
MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdG
MjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07
CisJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5
NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICov
OyB9OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICov
OyB9OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmgg
Ki87IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5
NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovOyB9Owor
CQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEMxMjUz
OTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovOyB9OworCQk5MzQ5
NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDNDI1Mzk0
MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi87IH07CiAJCTkz
NENDMTBBMEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRDQzEwOTBFREIyMjM5MDBBNjU4
RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovOyB9OwogCQk5MzRGNzEzQTBENUE2RjEwMDAwMThE
NjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNl
RXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyNDYsNiArMTEy
NTMsMjYgQEAKIAkJOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxUYWJsZVJvd3ND
b2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDQyQzlGMEQyQjMz
NjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFw
aGljc0NvbnRleHRDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBBRDI1Mzk0
MzQ2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQUYyNTM5NDM0NzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCODI1Mzk0MzRDMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUw
QjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDk1MEJBMjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMw
MjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5
NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VD
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFNvdXJjZUNvZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5
IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNTM0Miw2ICsyNTM2OSwyNiBAQAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEy
NSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4
NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJB
NUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCisJ
CQkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNwcCAqLywK
KwkJCQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLywK
KwkJCQk5MzQ5NTBBRDI1Mzk0MzQ2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICov
LAorCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcCAqLywKKwkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAorCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5MzQ5NTBBRjI1Mzk0
MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKKwkJCQk5MzQ5
NTBCODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICov
LAorCQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCQTI1Mzk0MzREMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBDMDI1Mzk0MzUw
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwQzky
NTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKKwkJCQk5MzQ5
NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJ
CQkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNw
cCAqLywKKwkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaCAqLywKKwkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsICovLAorCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1
Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJ
CQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJ
CQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJ
QUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0z
NDAxNyw2ICszNDA2NCwxMyBAQAogCQkJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3Vy
Y2VHcmFwaGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIg
LyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5
NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQx
MjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ2MjUz
OTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50
aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3
MmU5OTU3OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uZGVlNzZjZTJiZTMzMzg1MzUwNzgzOWI3
MDNjNTVjZTYzMjU0OThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgbWFjcm8oU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbikgXAogICAgIG1hY3JvKFNoYWRvd1Jvb3QpIFwKKyAgICBt
YWNybyhTcGVlY2hSZWNvZ25pdGlvbikgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpIFwKKyAg
ICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpIFwK
ICAgICBtYWNybyhTdGF0aWNSYW5nZSkgXAogICAgIG1hY3JvKFN0ZXJlb1Bhbm5lck5vZGUpIFwK
ICAgICBtYWNybyhTdHlsZVByb3BlcnR5TWFwUmVhZE9ubHkpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KaW5kZXggNzJjZmFhNWViMDc1OTYwYTczN2ZiZTIzNTFlNTQ5ZGQ0NDRjN2Y2My4uNzYw
M2U1Y2U4NmJhMWYwODdmOTE4YjM4MzUxNTNkZWI3ZTJkN2JiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25h
bD1XRUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJU
Q1BlZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVu
dCBjb25kaXRpb25hbD1XRUJfUlRDCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgY29uZGl0
aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGNvbmRpdGlv
bmFsPVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9
U1BFRUNIX1NZTlRIRVNJUwogV2ViR0xDb250ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0
b3JhZ2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFj
dG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXgg
MzAxNzEwMDQ0ZmYxM2ExNGMwMjI4ZGEzODkwMmQzZTdkMzM3N2MxMi4uYmEyMzRhNDNjMzIxNjM1
NGUwYTM1NGM4ZGJjMTE3YTU0ZDFlMTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCkBAIC00NCw2ICs0NCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBj
b25kaXRpb25hbD1TRVJWSUNFX1dPUktFUgogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBjb25k
aXRpb25hbD1TRVJWSUNFX1dPUktFUgogU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NP
VVJDRQogU291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK1NwZWVjaFJl
Y29nbml0aW9uIGNvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTgogU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKIFRleHRUcmFjayBjb25kaXRp
b25hbD1WSURFTwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRl
eCA3OTZkYjY5OTZlZWRmZTViN2U5MjgwMDEzNzIwNTRjZjY5YzM4MDQ2Li5kZGI0NTM0ZjE3MzI1
OTFiNmUzNmI0YzcwNWRhMDJlNzFiZGMxZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTY1NCw2ICs2NTQs
OCBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5j
cHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uY3BwCitXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuY3BwCiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAKIAogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
ZWJhNWRhODAxYTI3ZmY5OWIwNjc3MTAzNTFlYjI0NjhmYTY5NDAwYi4uN2VjNTA0NjQ1MzczNWMy
NTIyMzJkMjcxNTg0NGU4NDg3YTdjMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yODks
NiArMjg5LDcgQEAKICNkZWZpbmUgV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU0luZGl2
aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NJ
bmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENvbnRh
Y3RQaWNrZXJBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRhY3RQaWNrZXJBUElF
bmFibGVkIgorI2RlZmluZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgogCiAvLyBUaGUgcHJlZmVyZW5j
ZSBrZXlzIGJlbG93IHRoaXMgcG9pbnQgYXJlIGRlcHJlY2F0ZWQgYW5kIGhhdmUgbm8gZWZmZWN0
LiBUaGV5IHNob3VsZAogLy8gYmUgcmVtb3ZlZCB3aGVuIGl0IGlzIGNvbnNpZGVyZWQgc2FmZSB0
byBkbyBzby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCmluZGV4IDJhN2U4ZTRiN2U0NTQyMWM2MGU2NTY2NDdiYzMzYWY4YjY3MmU3ZTgu
LmExMDgzOGNlOTFmYjU2NjZlOTM4MTZhZWUwNWUwMmMzYjBiZDAxZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzM3NSw2
ICszMzc1LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0luZGl2aWR1YWxUcmFu
c2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKXNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5
OldlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2
b2lkKXNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYg
X3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVyZW5j
ZXMgKFdlYlByaXZhdGVPYnNvbGV0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDliYzEwY2E3MjUxMDM1
N2I3ZGY2ZGM1ZmExNjRmOGE3ODA5OGIwMDkuLjY2N2NjNzcxNTM5NjllOTU3NDk3ODc1MDhmZDkx
OWY0OGRmOTIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzQ4LDYgKzM0OCw3IEBAIGV4dGVybiBO
U1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0
aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVJl
Y29yZGVyRW5hYmxlZDopIEJPT0wgX21lZGlhUmVjb3JkZXJFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgQ1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGFjdFBpY2tlckFQSUVuYWJsZWQ7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ7CiBAZW5kCiAK
IEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVEZXByZWNhdGVkKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc4ZTk3MmNkNzdh
ZjRhOWNkZGFhMDc5ZmE2MWU0YTBhMDVjMDFhNmMuLjc4MWE4ZjYwNGY0ZGE3Y2EwZTU5OWQ2YTA1
MDU0MDM1ODg2ZGM3NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisgICAgICAgIChyZXNldFdlYlByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKworMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3
ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06Cisg
ICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisgICAgICAgIChyZXNldFdlYlBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMC0xMC0xOCAgTGF1cm8gTW91cmEg
IDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICB3ZWJraXRjb3JlcHk6IEFsbG93IG9uZSBw
YWNrYWdlIHRvIHJlcXVpcmUgYW5vdGhlciBwYWNrYWdlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuaAppbmRleCA4NzhiNjJhYTUxYjQxMWMwNzJmNTY3ODIxNDRjNzRlYzhiN2Y2ZDk2Li42ODc0
NzM4ZGY5OWZkNzVjZGU1MTA0MjEyNjg4MTVkMGUwM2NkZGU2IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmgKQEAgLTY5LDYgKzY5LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBi
b29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVE
cmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVdlYlNR
TCB7IHRydWUgfTsKKyAgICBib29sIGVuYWJsZVNwZWVjaFJlY29nbml0aW9uIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbGF5ZXJCYWNrZWRXZWJWaWV3IHsgZmFsc2UgfTsKICAgICBib29sIHVzZUVwaGVt
ZXJhbFNlc3Npb24geyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0
ZWRJbWFnZVR5cGVzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CmluZGV4IDdiYTkwODNlZjEzZTkxMTAyNjk1OWZkYzU0ZjA0ZmUwMTU2YmQwNDYuLmIyODdlOTA4
ZGU0ZmQzYjFkN2E0ZGZkYTk2NWJiYmY5ZGUxN2EwZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg0MSw2ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCBl
bmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAg
ICAgW3ByZWZlcmVuY2VzIHNldEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFi
bGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0Vu
YWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNd
OworICAgIFtwcmVmZXJlbmNlcyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6WUVTXTsKIH0K
IAogLy8gQ2FsbGVkIGJlZm9yZSBlYWNoIHRlc3QuCkBAIC05NjMsNiArOTY0LDggQEAgc3RhdGlj
IHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBbcHJl
ZmVyZW5jZXMgc2V0V2ViU1FMRW5hYmxlZDpZRVNdOwogCisgICAgW3ByZWZlcmVuY2VzIHNldFNw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZDpZRVNdOworCiAgICAgW1dlYlByZWZlcmVuY2VzIF9jbGVh
ck5ldHdvcmtMb2FkZXJTZXNzaW9uXTsKICAgICBbV2ViUHJlZmVyZW5jZXMgX3NldEN1cnJlbnRO
ZXR3b3JrTG9hZGVyU2Vzc2lvbkNvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbl07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411840</attachid>
            <date>2020-10-19 23:13:53 -0700</date>
            <delta_ts>2020-10-20 00:04:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201019231349.patch</filename>
            <type>text/plain</type>
            <size>113329</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5Y2I0YTZlODE4OThkM2RlOWQwNTYx
NWM5MGU1ZTJjMzcyZDMzYjguLjVmMzdhY2JlMWQwN2ZiNDlmODdhN2QwMDJiOTNjODFkODJmYjc4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIwLTEwLTE5ICBMYXVy
byBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2ODEx
NSkgW0dUS10gQnVpbGQgZmFpbHVyZXMgd2l0aCBHQ0MgNyAoVWJ1bnR1IDE4LjA0KSBhbmQgR0ND
IDggKERlYmlhbiBCdXN0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzZTNmYjM4ZDYyNzY2YmM1NDZhZDE1
MGVkZTEwYTk2ZTY0ZGNiZC4uNjg1OWM4MjU5Y2VmYWVkNmQ5ZGFiM2Y4ZDk0YzYyMzU0ZTVmYzE3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2du
aXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
Nzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJpbmRpbmdzIGNvZGUgYW5kIGEg
ZmVhdHVyZSBmbGFnIGZvciBTcGVlY2hSZWNvZ25pdGlvbi4KKyAgICAgICAgU3BlYzogaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gtYXBpLyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbmNsdWRlcyBhbGwgaW50ZXJmYWNlcyBvZiBTcGVlY2hSZWNvZ25pdGlv
biwgZXhjZXB0IFNwZWVjaEdyYW1tYXIgYW5kIFNwZWVjaEdyYW1tYXJMaXN0LiBXZSBoYXZlIG5v
dAorICAgICAgICBkZWNpZGVkIHdoYXQgZ3JhbW1hciBmb3JtYXQgYW5kIHR5cGVzIHdlIGFyZSBn
b2luZyB0byBzdXBwb3J0LCBvciBob3cgd2UgYXJlIGdvaW5nIHRvIHN1cHBvcnQgaXQgaWYgaXQg
aXMgbm90CisgICAgICAgIGRlZmluZWQgaW4gZXhpc2l0aW5nIHNwZWVjaCByZWNvZ25pdGlvbiBz
ZXJ2aWNlLiBTbyBsZXQncyBhZGQgdGhvc2UgaW50ZXJmYWNlcyBhZnRlciB3ZSBmaWd1cmUgdGhp
cyBvdXQuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gUmViYXNlbGluZSBleGlzdGlucyB0ZXN0
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpjb250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjpzZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjppbnRlcmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmV2ZW50
SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmlu
OgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisKIDIwMjAtMTAtMTkgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGNyYXNo
IGluIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2xpcHBpbmdTdGFja0xheWVyR2VvbWV0cnko
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDU1M2MwNGE3MzdjM2Q3MWE5OGI2YTI1
MTRkOGFmNTQwMjQ5MzY0OTguLmQ2NTQ5Y2Y1Njk2NTY5M2FiMWZiY2I5ZWRlZTdlODQzNGFjMWVm
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0x
MC0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1
YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRp
b25FbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6
CisKIDIwMjAtMTAtMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjU0MzApOiBGaXggLVdzdHJpbmctY29uY2F0ZW5hdGlvbiB3YXJu
aW5nIGZyb20gb3BlbiBzb3VyY2UgY2xhbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dU
Ri9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5k
ZXggZjY1NjZjNTgwMDE3ZTNkZjk5YWVhZTJmNWRmMzI2OWVmMTIyMTYwYi4uOGY4MTg5YmNiMGVi
ZGUzOGU5YjAzNzc3OTM3ZGM3ZGU5YmI2ZTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlh
bWwKQEAgLTcyOCw2ICs3MjgsMTggQEAgU2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50
aWxBZnRlckRvY3VtZW50TG9hZE9yRmlyc3RQYWludDoKICAgICBXZWJDb3JlOgogICAgICAgZGVm
YXVsdDogdHJ1ZQogCitTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJTcGVlY2hSZWNvZ25pdGlvbiBBUEkiCisgIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTcGVlY2hSZWNvZ25pdGlvbiBmcm9tIFdlYlNwZWVjaCBB
UEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJM
RShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIGlzIHRydWUgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBz
aG91bGQgY29uc2lkZXIgdXNpbmcgdGhhdCBmb3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBTcHJp
bmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCmluZGV4IGUyMjI5ODc1YjQ3N2IxYzZiYWJiYzVmZWRkOTdjYTU3MjkxZDNjMjMuLjBiNzM4
ZDM4ZGE4YzY4ZDVhYmZiYTcyODZkY2JjMzRjYmU3ZTQ3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGUuaApAQCAtNDQ1LDYgKzQ0NSwxMCBAQAogI2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElO
RyAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQorI2Rl
ZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQogI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAw
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA5M2ZhZmRhMTE0
Yzk5MmI2NDMwOTVkMWIyYjk3NDY0MmYzNjg4Y2IwLi5kYTk2ZGVmOTk3ODgwZGY0YjU5ODhjZDM2
OWVhNmE5NTQwOWJmZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC00
MjEsNiArNDIxLDEwIEBACiAjZGVmaW5lIEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mg
MQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1JFQ09HTklUSU9OKSAmJiAh
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfUkVDT0dOSVRJT04g
MQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJiYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAxCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmYxMzYzNzFkODlhYmJkOTZkZmFkYmZmMjEz
YjdmNzc3OGQxNjIzYS4uMTYwNzdkZTY4MjE4MDYzODY3ZWIyZjhjNDI3OTllNTNmMjI0OTk4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzNiw2ICs0MzYsMTQgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNr
LmlkbAogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxp
dHlDYWxsYmFjay5pZGwKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlk
bAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCisg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCisgICAgTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVj
aFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA3YTQ1NDFkMTdmZWIz
ZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi4wMjNhOWRmY2QzNjNkMmZkNmY1ZDAxZDQ2Y2Qx
NjM2MjZmNDVjOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsyNzksMTMgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9x
dW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFp
bGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJ
UikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5
MWFjZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi5mMDk0YmY5NmRmMjg1ZTlmNzU3YTM0M2M5NGJm
ZjUxYzE4NmUyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMjExMCw2ICsyMTEwLDIwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3Vy
Y2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVj
b2duaXRpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3lu
dGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDI2OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIzMGM1N2U2OWIxMzYuLmI4
YzgyZjhiZDM3ZjhkMDk0ODc1MjMwMzIwOTk4Yjc5NDhhM2Y1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMzA2LDYgKzMwNiwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5p
ZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsIFwK
KwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9CeXRl
TGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVh
bXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCBmMjc0N2NhZjcxNDM5Njg2N2ZjNmE2N2I5YzcwNDI2OTU4ZjRhNDgwLi41YzFmNzlmY2Yz
YjRiOTRhMjAyMDI4ZDlmMGFhMzcxNThkZWE1MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEx
MCw2ICsxMTAsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
TW9kdWxlcy9wbHVnaW5zL1BsdWdpblJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMv
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdERhdGEuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdElkZW50aWZpZXIuaAorCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAg
IE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjFlMmIzMGUwODI4M2QwYWQ3ZTI0Njg1ZTBiOWYyMzNiYWJhMDA2MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApA
QCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9O
KQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOworCitSZWY8U3BlZWNo
UmVjb2duaXRpb24+IFNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCit7CisgICAgc3VzcGVu
ZElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbikKK3sKKyAgICBhYm9ydFJlY29nbml0aW9uKCk7Cit9CisKK0V4Y2VwdGlv
bk9yPHZvaWQ+IFNwZWVjaFJlY29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKK3sKKyAgICBy
ZXR1cm4geyB9OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24o
KQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKK3sK
K30KKworY29uc3QgY2hhciogU3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiU3BlZWNoUmVjb2duaXRpb24iOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU2ZGZkY2M0NmY1NTNkMTlj
MzgzZGJiNjc2YzNhYzNlY2E4ZDFkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmgKQEAgLTAsMCArMSw4MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikK
KworI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xh
c3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVm
Q291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhICB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50
Jik7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0K
KyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fbGFuZyA9IGxhbmc7IH0K
KworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91czsgfQor
ICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVvdXMpIHsgbV9jb250aW51b3VzID0g
Y29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNvbnN0IHsgcmV0dXJu
IG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldEludGVyaW1SZXN1bHRzKGJvb2wgaW50
ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1bHRzOyB9CisKKyAg
ICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBtX21heEFsdGVybmF0
aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVzKHVuc2lnbmVkIG1heEFsdGVybmF0
aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsgfQorCisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvZ25pdGlvbigpOworICAgIHZvaWQgc3RvcFJlY29nbml0
aW9uKCk7CisgICAgdm9pZCBhYm9ydFJlY29nbml0aW9uKCk7CisKKyAgICB1c2luZyBSZWZDb3Vu
dGVkOjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAg
U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsKKyAgICB2b2lkIHN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQor
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
KyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgU3RyaW5nIG1fbGFuZzsK
KyAgICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ludGVyaW1SZXN1
bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZlcyB7IDEgfTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg4
Yzc5YTczYzJkZWY0MzQzYzQzOGI1OTBmNDI1NGIxMjY1MDg3MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAt
MCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBD
b25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVl
Y2hSZWNvZ25pdGlvbiwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVj
b2duaXRpb24gOiBFdmVudFRhcmdldCB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1
Y3RvcigpOworCisgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJpYnV0ZSBi
b29sZWFuIGNvbnRpbnVvdXM7CisgICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJlc3VsdHM7
CisgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisgICAgW01h
eVRocm93RXhjZXB0aW9uLCBJbXBsZW1lbnRlZEFzPXN0YXJ0UmVjb2duaXRpb25dIHVuZGVmaW5l
ZCBzdGFydCgpOworICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BSZWNvZ25pdGlvbl0gdW5kZWZpbmVk
IHN0b3AoKTsKKyAgICBbSW1wbGVtZW50ZWRBcz1hYm9ydFJlY29nbml0aW9uXSB1bmRlZmluZWQg
YWJvcnQoKTsKKworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb3N0YXJ0OworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zb3VuZHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25zcGVlY2hzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3Bl
ZWNoZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zb3VuZGVuZDsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9uYXVkaW9lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnJlc3VsdDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubm9tYXRjaDsKKyAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZXJyb3I7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTU4NDM4NmY0ZWRjMWVlMTlkMTAxYmRi
ODZmOGY4YmZlYjhiM2I5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQor
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlOjpjcmVhdGUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZp
ZGVuY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZShXVEZNb3ZlKHRyYW5zY3JpcHQpLCBjb25maWRlbmNlKSk7Cit9CisKK1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5n
JiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCisgICAgOiBtX3RyYW5zY3JpcHQodHJh
bnNjcmlwdCkKKyAgICAsIG1fY29uZmlkZW5jZShjb25maWRlbmNlKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFmYzYwZTEyNDdkZjA1MmZjNDJlMmQ1Yzk0NDgwY2ZmODQwYjZlYzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlPiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU+IGNyZWF0ZShTdHJpbmcmJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlk
ZW5jZSk7CisKKyAgICBTdHJpbmcgdHJhbnNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNj
cmlwdDsgfQorICAgIGRvdWJsZSBjb25maWRlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWRl
bmNlOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZShTdHJpbmcmJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJp
bmcgbV90cmFuc2NyaXB0OworICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YmEyMDQ3ODM4MTU1ZTQ1YWQ5OTIyYTkxMjhhYjAwMTAzZDVjYjRiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZSwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9z
ZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIHsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGZsb2F0IGNvbmZpZGVuY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjQzODQzYjVjNmEwZTIzYWIyNWFmOWQ2NzQzMjEwYTk5NGExMjRjYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICBOb1NwZWVjaCwK
KyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBOZXR3b3JrLAorICAgIE5vdEFs
bG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFkR3JhbW1hciwKKyAgICBMYW5n
dWFnZU5vdFN1cHBvcnRlZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQxOWQ0Mzg1MzFkMjVkYTkwYWRh
N2FkMDg0MzM5MDdjMzVkNzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OLAor
XSBlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAg
ICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAi
bm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1t
YXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjMxODJjMThjMTI0ZTI1MmY3ZjExNzE4YzIwNWUwNjVmYmVi
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Ojpj
cmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVk
IGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQp
CisgICAgOiBFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQu
ZXJyb3IpCisgICAgLCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2
ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVz
c2FnZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNWZmZjFj
ZmYwMzQ5OTFkZjJiMzE1ZmIxMTRiNjE1YTg0YjhjMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworcHVi
bGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgIH07CisK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7Cisg
ICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7
IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIG1fZXJyb3I7
CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZjU5YzdhNTdi
ODIwN2Q4MDE5YTg0ZmZmNTEzZWFhYjBkYmUwMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JF
Q09HTklUSU9OLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAg
RXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCA6
IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBtZXNzYWdlOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yQ29kZSBlcnJvcjsKKyAgICBET01TdHJpbmcgbWVzc2FnZSA9ICIiOworfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
dmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5Yzg4YjJkYWI5YTIxN2U3MTUxYTJmZDY2MmYxMDYxMzE4
MmYxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIgor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVj
aFJlY29nbml0aW9uRXZlbnQpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IElu
aXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKwor
UmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgcmVzdWx0SW5kZXgsIFdURk1v
dmUocmVzdWx0cykpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2du
aXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAg
ICwgbV9yZXN1bHRJbmRleChpbml0LnJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRzKGluaXQu
cmVzdWx0cykKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRp
b25FdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVm
UHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQorICAgIDogRXZlbnQo
dHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAg
ICwgbV9yZXN1bHRJbmRleChyZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhXVEZNb3ZlKHJl
c3VsdHMpKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Ojpl
dmVudEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXZl
bnRJbnRlcmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiYjYxOTc3ZGIzYWZhNjI0NjcyY2MxNTE5NWVlNDVjZjIw
M2E4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUg
IkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGZpbmFsIDogcHVi
bGljIEV2ZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9u
RXZlbnQpOworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAgICAgICAg
dWludDY0X3QgcmVzdWx0SW5kZXg7CisgICAgICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+IHJlc3VsdHM7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAgIHVpbnQ2NF90IHJlc3Vs
dEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRJbmRleDsgfQorICAgIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCogcmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0cy5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB1aW50NjRfdCBtX3Jlc3VsdEluZGV4Owor
ICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IG1fcmVzdWx0czsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdkMGQ4MTYwNDJlMzlkNmZlNmY3NTJiZjYzMmMyNmQyMmQxNGNkNmEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0
aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyByZXN1bHRJbmRleDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJl
Y29nbml0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICB1bnNpZ25lZCBsb25nIHJlc3Vs
dEluZGV4ID0gMDsKKyAgICByZXF1aXJlZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVz
dWx0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRhZTAwMTA3Nzc2ZTdkMTlm
M2Y1N2Q2ZDUwMmJjYzdmNGYwMDk2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQpOwor
CitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Ojpj
cmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiBhbHRlcm5h
dGl2ZXMsIGJvb2wgaXNGaW5hbCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKGFsdGVybmF0aXZlcyksIGlzRmluYWwpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxS
ZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlz
RmluYWwpCisgICAgOiBtX2FsdGVybmF0aXZlcyhXVEZNb3ZlKGFsdGVybmF0aXZlcykpCisgICAg
LCBtX2lzRmluYWwoaXNGaW5hbCkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIChpbmRleCA8IG1fYWx0ZXJuYXRpdmVzLnNpemUoKSkgPyBtX2FsdGVybmF0
aXZlc1tpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDEzMjM1OWU4MGRhNDk4YWYzNjJi
ZGY2OTU4ZTAyN2U2ZDFkZGMwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElP
TikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICB1aW50NjRf
dCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2FsdGVybmF0aXZlcy5zaXplKCk7IH0KKyAgICBi
b29sIGlzRmluYWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmluYWw7IH0KKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlKiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU+PiYmLCBib29sIGlzRmluYWwpOworCisgICAgVmVjdG9yPFJlZjxTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4gbV9hbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBtX2lz
RmluYWwgeyBmYWxzZSB9OworfTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTI2NWI2YWI3ZTAxMzY0Yzc4OTc1ZTI4OGE5ZGE3ZDQwMzY5Y2ExYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlv
bmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29n
bml0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5k
b3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViOWU3YTA2MDVmMWNkNTA5YjM2Mzc5MmZjMzEyYjEyMmZhNDgzNmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisK
KyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQorCitSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0
ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChXVEZNb3ZlKGxp
c3QpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q6Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRl
eCA8IG1fbGlzdC5zaXplKCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYocmVzdWx0KSk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxpc3QpCisgICAgOiBt
X2xpc3QoV1RGTW92ZShsaXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E5OGE5MjQwYzkwMGM0OGRi
ZjQ5ZjM0MTc4MjYwNjZmZWU5NjU0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEs
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVD
T0dOSVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsK
KyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3Rv
cjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0Jik7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0KCkgPSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0
b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9saXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2JhYmU4
ZmZhMzU4MmE5NTEyYTdmNzBhYTg2ZTMxZjYxNDkzNzM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNQRUVD
SF9SRUNPR05JVElPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCB7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggOWM4ODc1MWUzYzY4
MDY0MWRkM2QwYjQ2M2E1ODVmODU5YjA5YzI3My4uMWFlM2UzYTcyMTJmOTMwZTFhMmI1ZDZkMGIx
NGRlMzc5OWJmMzQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZS5oIgorLy8gI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDkxYzU4Nzk4NWU0MDljZWIyMTMxYjg4YTFj
YzRiZjdjYTdmNWMzZWQuLjk0ZjQ5MWEwNjhhYjI2NTc5Y2UwMWNmNzczMTFmMjc2MmRiODI2Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC0xODEsNiArMTgxLDEyIEBAIE1vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9FbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHAKIE1vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKIE1vZHVsZXMvcGljdHVy
ZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcApAQCAtMzQ4OCw2ICszNDk0LDEzIEBAIEpTU2hhcmVEYXRhLmNwcAog
SlNTbG90YWJsZS5jcHAKIEpTU291cmNlQnVmZmVyLmNwcAogSlNTb3VyY2VCdWZmZXJMaXN0LmNw
cAorSlNTcGVlY2hSZWNvZ25pdGlvbi5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCitKU1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK0pTU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAK
IEpTU3BlZWNoU3ludGhlc2lzLmNwcAogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKIEpTU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzOWI3MWM2MTA1ZGY0NjdiM2IzMGY1MjI5
YjdkMGQwNTI5N2I3NWIuLmRmMDNjYjU0YzM2YmNhZjA2YjI1MWNhMzI2ZGRhOGZhZWFkZWRhN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTI3MzAsNiArMjczMCwxMyBAQAogCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyog
VGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLzsgfTsK
IAkJOTM0NDJDOUUwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0MkM5RDBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJOTM0
OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5MDdFMzEyNUJCQkM4MDA3RjIz
QTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovOyB9Owor
CQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUw
QkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLzsg
fTsKKwkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5
NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLzsg
fTsKKwkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICov
OyB9OworCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUw
QzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLzsgfTsKKwkJ
OTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDMTI1Mzk0
MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLzsgfTsKKwkJOTM0OTUw
RDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OwogCQk5MzRD
QzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYy
IC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLzsgfTsKIAkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5
IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxMzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVy
cm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMjQ2LDYgKzExMjUz
LDI2IEBACiAJCTkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29s
bGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ0MkM5RjBEMkIzMzYw
MDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhp
Y3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQUQyNTM5NDM0
NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEFGMjUzOTQzNDcwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlZWNoUmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjgyNTM5NDM0QzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI5
MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTBCQTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMDI1
Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM0MjUzOTQz
NTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTb3VyY2VDb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM3MEQ1QTZFRkYwMDAxOEQ2OSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjUzNDIsNiArMjUzNjksMjYgQEAKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJ
CTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8sCisJ
CQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8sCisJ
CQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLywK
KwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUwQUYyNTM5NDM0
NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCisJCQkJOTM0OTUw
QjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywK
KwkJCQk5MzQ5NTBDODI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmggKi8sCisJCQkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJOTM0OTUwQzAyNTM5NDM1MDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEM5MjUz
OTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCisJCQkJOTM0OTUw
QjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJ
CTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAg
Ki8sCisJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmggKi8sCisJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCisJCQkJOTM0OTUwQzUyNTM5
NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJ
QUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJ
QUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFB
MkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzQw
MTcsNiArMzQwNjQsMTMgQEAKIAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNl
R3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQyIC8q
IFNwYWNlU3BsaXRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyNkNERTBGMTE0MDQyNEMw
MDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUw
Q0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMTI1
Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENjI1Mzk0
MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhl
c2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3MDJjYzU5NzJl
OTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLmRlZTc2Y2UyYmUzMzM4NTM1MDc4MzliNzAz
YzU1Y2U2MzI1NDk4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzOCw2ICsyMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24pIFwKICAgICBtYWNybyhTaGFkb3dSb290KSBcCisgICAgbWFj
cm8oU3BlZWNoUmVjb2duaXRpb24pIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlKSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KSBcCisgICAg
bWFjcm8oU3BlZWNoUmVjb2duaXRpb25FdmVudCkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KSBcCiAg
ICAgbWFjcm8oU3RhdGljUmFuZ2UpIFwKICAgICBtYWNybyhTdGVyZW9QYW5uZXJOb2RlKSBcCiAg
ICAgbWFjcm8oU3R5bGVQcm9wZXJ0eU1hcFJlYWRPbmx5KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCmluZGV4IDcyY2ZhYTVlYjA3NTk2MGE3MzdmYmUyMzUxZTU0OWRkNDQ0YzdmNjMuLjc2MDNl
NWNlODZiYTFmMDg3ZjkxOGIzODM1MTUzZGViN2UyZDdiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCkBAIC02Miw2ICs2Miw4IEBAIFJUQ0RhdGFDaGFubmVsRXZlbnQgY29uZGl0aW9uYWw9
V0VCX1JUQwogUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENQ
ZWVyQ29ubmVjdGlvbkljZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1RyYWNrRXZlbnQg
Y29uZGl0aW9uYWw9V0VCX1JUQworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGNvbmRpdGlv
bmFsPVNQRUVDSF9SRUNPR05JVElPTgorU3BlZWNoUmVjb2duaXRpb25FdmVudCBjb25kaXRpb25h
bD1TUEVFQ0hfUkVDT0dOSVRJT04KIFNwZWVjaFN5bnRoZXNpc0V2ZW50IGNvbmRpdGlvbmFsPVNQ
RUVDSF9TWU5USEVTSVMKIFdlYkdMQ29udGV4dEV2ZW50IGNvbmRpdGlvbmFsPVdFQkdMCiBTdG9y
YWdlRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rv
cnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDMw
MTcxMDA0NGZmMTNhMTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIuLmJhMjM0YTQzYzMyMTYzNTRl
MGEzNTRjOGRiYzExN2E1NGQxZTEwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbgpAQCAtNDQsNiArNDQsNyBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgY29u
ZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gY29uZGl0
aW9uYWw9U0VSVklDRV9XT1JLRVIKIFNvdXJjZUJ1ZmZlciBjb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UKIFNvdXJjZUJ1ZmZlckxpc3QgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCitTcGVlY2hSZWNv
Z25pdGlvbiBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KIFNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZSBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBUZXh0VHJhY2sgY29uZGl0aW9u
YWw9VklERU8KIFRleHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFTwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggZWJhNWRhODAxYTI3ZmY5OWIwNjc3MTAzNTFlYjI0NjhmYTY5NDAwYi4uN2VjNTA0
NjQ1MzczNWMyNTIyMzJkMjcxNTg0NGU4NDg3YTdjMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CkBAIC0yODksNiArMjg5LDcgQEAKICNkZWZpbmUgV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdENvbnRhY3RQaWNrZXJBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRhY3RQ
aWNrZXJBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgogCiAvLyBUaGUg
cHJlZmVyZW5jZSBrZXlzIGJlbG93IHRoaXMgcG9pbnQgYXJlIGRlcHJlY2F0ZWQgYW5kIGhhdmUg
bm8gZWZmZWN0LiBUaGV5IHNob3VsZAogLy8gYmUgcmVtb3ZlZCB3aGVuIGl0IGlzIGNvbnNpZGVy
ZWQgc2FmZSB0byBkbyBzby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDJhN2U4ZTRiN2U0NTQyMWM2MGU2NTY2NDdiYzMzYWY4
YjY3MmU3ZTguLmExMDgzOGNlOTFmYjU2NjZlOTM4MTZhZWUwNWUwMmMzYjBiZDAxZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtMzM3NSw2ICszMzc1LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9
IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0luZGl2
aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChC
T09MKXNwZWVjaFJlY29nbml0aW9uRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZh
bHVlRm9yS2V5OldlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOwor
fQorCistICh2b2lkKXNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7Cisg
ICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRTcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
UHJlZmVyZW5jZXMgKFdlYlByaXZhdGVPYnNvbGV0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDliYzEw
Y2E3MjUxMDM1N2I3ZGY2ZGM1ZmExNjRmOGE3ODA5OGIwMDkuLjY2N2NjNzcxNTM5NjllOTU3NDk3
ODc1MDhmZDkxOWY0OGRmOTIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzQ4LDYgKzM0OCw3IEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFs
Tm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRNZWRpYVJlY29yZGVyRW5hYmxlZDopIEJPT0wgX21lZGlhUmVjb3JkZXJFbmFibGVkOwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNF
bmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGFjdFBpY2tlckFQSUVuYWJs
ZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ7
CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVEZXByZWNhdGVk
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg4
MmUzZmQ5MzY5ZmNlOTdhZjMzNTQ0MjllY2Y2N2JkODYwNDI1Y2UuLjRlNGJhNTI3NWIwMWQ5NDY3
YjEzYWUwZDVmZDMzYWRjNTI2MzZmNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJl
Y29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisgICAgICAgIChyZXNl
dFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMC0xMC0xOSAgTGF1cm8g
TW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjgxMTUp
IFtHVEtdIEJ1aWxkIGZhaWx1cmVzIHdpdGggR0NDIDcgKFVidW50dSAxOC4wNCkgYW5kIEdDQyA4
IChEZWJpYW4gQnVzdGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggODc4YjYy
YWE1MWI0MTFjMDcyZjU2NzgyMTQ0Yzc0ZWM4YjdmNmQ5Ni4uYzM4MzE4ODNkZDEwYTI3NDUyMGZj
ODkzNjhiOTJkN2QwODU4ZTBmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC02
NCw2ICs2NCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBlbmFibGVSZXF1ZXN0
SWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVyIHsg
ZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CisgICAgYm9vbCBlbmFi
bGVTcGVlY2hSZWNvZ25pdGlvbiB7IHRydWUgfTsKIAogICAgIC8vIFRlc3QgUnVubmVyIFNwZWNp
ZmljIEZlYXR1cmVzCiAgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdiYTkw
ODNlZjEzZTkxMTAyNjk1OWZkYzU0ZjA0ZmUwMTU2YmQwNDYuLmIyODdlOTA4ZGU0ZmQzYjFkN2E0
ZGZkYTk2NWJiYmY5ZGUxN2EwZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KQEAgLTg0MSw2ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmlt
ZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVu
Y2VzIHNldEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6WUVTXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOworICAgIFtwcmVm
ZXJlbmNlcyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6WUVTXTsKIH0KIAogLy8gQ2FsbGVk
IGJlZm9yZSBlYWNoIHRlc3QuCkBAIC05NjMsNiArOTY0LDggQEAgc3RhdGljIHZvaWQgcmVzZXRX
ZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBbcHJlZmVyZW5jZXMgc2V0
V2ViU1FMRW5hYmxlZDpZRVNdOwogCisgICAgW3ByZWZlcmVuY2VzIHNldFNwZWVjaFJlY29nbml0
aW9uRW5hYmxlZDpZRVNdOworCiAgICAgW1dlYlByZWZlcmVuY2VzIF9jbGVhck5ldHdvcmtMb2Fk
ZXJTZXNzaW9uXTsKICAgICBbV2ViUHJlZmVyZW5jZXMgX3NldEN1cnJlbnROZXR3b3JrTG9hZGVy
U2Vzc2lvbkNvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJv
bU1haW5Eb2N1bWVudERvbWFpbl07CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGU5YjlhZDFiZTMzMWE5MjlmMDAxODEw
NjU3MTA3NDkzMjNhNmJiYy4uMDM1MjY1Y2IxN2E1YjBkNjkzMDJhOTBiYjk5ZDdiN2FlMWNjMTVh
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgc3BlZWNoIHRlc3RzIGZyb20gV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA5MmEyZDYxNWM5MjMzYzk3YTlhMmMzNjIyYjk0MjVjZDg3MDlkNmZjLi5iOGI3
NDUwODM2M2ZjZWQyMWRkMTlhZWIzNGZlNWM2ZTc4YzYxYmYwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3
ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVj
aC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQ6CisKIDIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CiAKICAgICAgICAgSW1wb3J0IHNwZWVjaCB0ZXN0cyBmcm9tIFdQVApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVj
aFJlY29nbml0aW9uLWJhc2ljcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24t
YmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3ZGQ2YThhNTYwMDFlMjQ3NzdlYmI1ZjM5
YTVjZDY0ZjcwZmJkMWUzLi4wYzhiNjg0MzIxZmZlODJkZjgwYjdmYmUzMzZjZWNhNjkxYThhMDRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1h
cGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDMgQEAKIAotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBiYXNpY3MgQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU3BlZWNoUmVjb2duaXRpb24KK0ZBSUwgU3BlZWNoUmVjb2duaXRpb24gYmFzaWNzIHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdyZWNvLmdyYW1tYXJzLmxlbmd0aCcp
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDFjZjQ3M2E5MmMwZDAxOTI1OTAzZjhjMWQyYWRkMGU1
NzkxZTRlMDkuLjFhODFkYWNjNzViYjc0OTJiNTBkMmUwNjhmMTE5N2MzY2ZmMGYwZjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNo
LWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dApAQCAtMTEsOTMgKzExLDkzIEBAIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdp
bmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ3JhbW1hcnMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYW5nIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29udGludW91cyBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGludGVyaW1SZXN1bHRzIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4QWx0ZXJuYXRpdmVzIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RhcnQoKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3AoKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFib3J0KCkgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1ZGlvc3Rh
cnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNv
dW5kc3RhcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvbnNwZWVjaHN0YXJ0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgb25zcGVlY2hlbmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnNvdW5kZW5kIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgb25hdWRpb2VuZCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9ucmVzdWx0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25ub21hdGNoIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25lcnJvciBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3RhcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVj
dGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVuZCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFNwZWVjaFJlY29nbml0aW9u
KCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFN0cmluZ2lmaWNhdGlvbiBv
ZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2Vw
dGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3Qg
IlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdyYW1tYXJzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxh
bmciIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udGludW91cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
bnRlcmltUmVzdWx0cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBl
Y3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBn
b3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVj
b2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXhBbHRlcm5hdGl2ZXMiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic3RhcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBu
dWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiYWJvcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBu
dWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmF1ZGlvc3RhcnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9u
IHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3VuZHN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9u
c3BlZWNoc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hlbmQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAib25zb3VuZGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3Bl
ZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmF1ZGlvZW5kIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVu
IGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9ucmVzdWx0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVk
IG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubm9tYXRjaCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24g
d2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlM
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvbmVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRf
ZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVj
dGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlh
YmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhcnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9u
IHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9l
cXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvciBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFj
ZTogYXR0cmlidXRlIG1lc3NhZ2UgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc2NyaXB0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgY29uZmlkZW5jZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVj
dGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIGxlbmd0aCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogb3BlcmF0
aW9uIGl0ZW0odW5zaWduZWQgbG9uZykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpc0ZpbmFsIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4
cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29u
c3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gaXRlbSh1
bnNpZ25lZCBsb25nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdEluZGV4IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVj
dGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0cyBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlz
c2luZworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZSBvYmpl
Y3QgbmFtZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitGQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGdyYW1tYXJzIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiZ3JhbW1hcnMiIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIGxhbmcKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29u
dGludW91cworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnRl
cmltUmVzdWx0cworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBt
YXhBbHRlcm5hdGl2ZXMKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRp
b24gc3RhcnQoKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
dG9wKCkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWJvcnQo
KQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1ZGlvc3Rh
cnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zb3VuZHN0
YXJ0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNo
c3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zcGVl
Y2hlbmQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zb3Vu
ZGVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1ZGlv
ZW5kCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9ucmVzdWx0
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9ubm9tYXRjaAor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVycm9yCitQQVNT
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3RhcnQKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25lbmQKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgU3BlZWNoUmVjb2duaXRp
b24oKQorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFNwZWVjaFJlY29nbml0aW9uKCkKK0ZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImdyYW1tYXJzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfaW5oZXJpdHM6IHByb3BlcnR5ICJncmFtbWFycyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBj
aGFpbgorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25p
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGFuZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnRpbnVvdXMiIHdpdGggdGhlIHByb3BlciB0eXBl
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9u
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnRlcmltUmVzdWx0cyIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1heEFsdGVybmF0aXZlcyIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNo
UmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0YXJ0KCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9wKCkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29n
bml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhYm9ydCgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25p
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25hdWRpb3N0YXJ0IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3VuZHN0YXJ0IiB3aXRoIHRoZSBw
cm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hS
ZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hzdGFydCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc3BlZWNoZW5kIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBT
cGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3VuZGVuZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uYXVkaW9lbmQiIHdp
dGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnJlc3VsdCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubm9tYXRjaCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZXJyb3IiIHdpdGgg
dGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnN0YXJ0IiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25lbmQiIHdpdGggdGhlIHBy
b3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIGVycm9yCitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXNz
YWdlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc2Ny
aXB0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgY29uZmlkZW5jZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0IGludGVyZmFjZTogYXR0cmlidXRlIGxlbmd0aAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIGlzRmluYWwKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpCitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJm
YWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BB
U1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSByZXN1bHRJbmRleAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogYXR0
cmlidXRlIHJlc3VsdHMKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBtaXNzaW5nCiBGQUlMIFNwZWVjaEdyYW1tYXIgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdy
YW1tYXIiIG1pc3NpbmcKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoR3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIG1pc3NpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjc3ZTY5NDI0MTAy
NDQyNDY2ZjBmZjhlNzAwODhhMDJmZTMyNmM1YS4uNGJjNTY1YWZmYTI2ZTUyZjA5YzllNTViN2Vk
NjNkMDhjYzFiMzFhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQ0LDYgKzQ0LDggQEAgd2Via2l0Lm9yZy9iLzE4MTk2NCBmYXN0L3RleHQvbWFjL3Nl
bGVjdC1jaGFyYWN0ZXItYmVmb3JlLXplcm8td2lkdGgtam9pbmVyLmh0bWwKIHBvaW50ZXJldmVu
dHMvbW91c2UgWyBQYXNzIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRl
cmV2ZW50cyBbIFBhc3MgXQogCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVj
aC1hcGkgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBF
bmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCg==
</data>
<flag name="commit-queue"
          id="428164"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411843</attachid>
            <date>2020-10-20 00:03:38 -0700</date>
            <delta_ts>2020-10-20 10:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201020000336.patch</filename>
            <type>text/plain</type>
            <size>112676</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5Y2I0YTZlODE4OThkM2RlOWQwNTYx
NWM5MGU1ZTJjMzcyZDMzYjguLjVmMzdhY2JlMWQwN2ZiNDlmODdhN2QwMDJiOTNjODFkODJmYjc4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIwLTEwLTE5ICBMYXVy
byBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2ODEx
NSkgW0dUS10gQnVpbGQgZmFpbHVyZXMgd2l0aCBHQ0MgNyAoVWJ1bnR1IDE4LjA0KSBhbmQgR0ND
IDggKERlYmlhbiBCdXN0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzZTNmYjM4ZDYyNzY2YmM1NDZhZDE1
MGVkZTEwYTk2ZTY0ZGNiZC4uNGRmYTlmOWI3OTRjNDIzYzc0YmEwOTJjZGVmODgxMGNmYzQzYmZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2du
aXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
Nzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJpbmRpbmdzIGNvZGUgYW5kIGEg
ZmVhdHVyZSBmbGFnIGZvciBTcGVlY2hSZWNvZ25pdGlvbi4KKyAgICAgICAgU3BlYzogaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gtYXBpLyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbmNsdWRlcyBhbGwgaW50ZXJmYWNlcyBvZiBTcGVlY2hSZWNvZ25pdGlv
biwgZXhjZXB0IFNwZWVjaEdyYW1tYXIgYW5kIFNwZWVjaEdyYW1tYXJMaXN0LiBXZSBoYXZlIG5v
dAorICAgICAgICBkZWNpZGVkIHdoYXQgZ3JhbW1hciBmb3JtYXQgYW5kIHR5cGVzIHdlIGFyZSBn
b2luZyB0byBzdXBwb3J0LCBvciBob3cgd2UgYXJlIGdvaW5nIHRvIHN1cHBvcnQgaXQgaWYgaXQg
aXMgbm90CisgICAgICAgIGRlZmluZWQgaW4gZXhpc2l0aW5nIHNwZWVjaCByZWNvZ25pdGlvbiBz
ZXJ2aWNlLiBTbyBsZXQncyBhZGQgdGhvc2UgaW50ZXJmYWNlcyBhZnRlciB3ZSBmaWd1cmUgdGhp
cyBvdXQuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gUmViYXNlbGluZSBleGlzdGlucyB0ZXN0
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbjo6bGFuZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6
c2V0TGFuZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6Y29udGludW91
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0Q29udGlu
dW91cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6aW50ZXJpbVJlc3Vs
dHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldEludGVy
aW1SZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjptYXhBbHRl
cm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNl
dE1heEFsdGVybmF0aXZlcyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRl
cmZhY2UgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0Ojpp
dGVtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmg6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorCiAyMDIwLTEwLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBjcmFzaCBpbiBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUNsaXBwaW5nU3RhY2tMYXllckdlb21ldHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCA1NTNjMDRhNzM3YzNkNzFhOThiNmEyNTE0ZDhhZjU0MDI0OTM2NDk4Li5kNjU0OWNm
NTY5NjU2OTNhYjFmYmNiOWVkZWU3ZTg0MzRhYzFlZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1b
V2ViUHJlZmVyZW5jZXMgc3BlZWNoUmVjb2duaXRpb25FbmFibGVkXSk6CisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIHNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDIwLTEwLTE3ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1NDMwKTog
Rml4IC1Xc3RyaW5nLWNvbmNhdGVuYXRpb24gd2FybmluZyBmcm9tIG9wZW4gc291cmNlIGNsYW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGY2NTY2YzU4MDAxN2UzZGY5OWFlYWUy
ZjVkZjMyNjllZjEyMjE2MGIuLjhmODE4OWJjYjBlYmRlMzhlOWIwMzc3NzkzN2RjN2RlOWJiNmU0
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03MjgsNiArNzI4LDE4IEBAIFNo
b3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZpcnN0
UGFpbnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorU3BlZWNoUmVjb2du
aXRpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU3BlZWNo
UmVjb2duaXRpb24gQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgU3Bl
ZWNoUmVjb2duaXRpb24gZnJvbSBXZWJTcGVlY2ggQVBJIgorICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiAjIEZJ
WE1FOiBUaGlzIGlzIGVuYWJsZWQgd2hlbiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSBp
cyB0cnVlIGluIFdlYktpdDIuIFBlcmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoYXQg
Zm9yIFdlYktpdExlZ2FjeSBhcyB3ZWxsLgogU3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkOgog
ICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5o
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCBlMjIyOTg3NWI0NzdiMWM2
YmFiYmM1ZmVkZDk3Y2E1NzI5MWQzYzIzLi4wYjczOGQzOGRhOGM2OGQ1YWJmYmE3Mjg2ZGNiYzM0
Y2JlN2U0N2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTQ0NSw2ICs0NDUsMTAgQEAK
ICNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5USEVT
SVMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKICNk
ZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgKaW5kZXggOTNmYWZkYTExNGM5OTJiNjQzMDk1ZDFiMmI5NzQ2NDJmMzY4
OGNiMC4uZGE5NmRlZjk5Nzg4MGRmNGI1OTg4Y2QzNjllYTZhOTU0MDliZmQ3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtNDIxLDYgKzQyMSwxMCBAQAogI2RlZmluZSBF
TkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQo
RU5BQkxFX1NQRUVDSF9SRUNPR05JVElPTikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBFTkFCTEVfU1BFRUNIX1JFQ09HTklUSU9OIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNkZWZp
bmUgRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDZmMTM2MzcxZDg5YWJiZDk2ZGZhZGJmZjIxM2I3Zjc3NzhkMTYyM2EuLjE2MDc3ZGU2ODIx
ODA2Mzg2N2ViMmY4YzQyNzk5ZTUzZjIyNDk5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00
MzYsNiArNDM2LDE0IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICAgICBNb2R1bGVzL3JlbW90ZXBs
YXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suaWRsCiAKKyAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAor
ICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKKwogICAg
IE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmlkbAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggN2E0NTQxZDE3ZmViM2UwODI4MWVhYWZjMDQzOWZhMGIyYTc2YzI5
MC4uMDIzYTlkZmNkMzYzZDJmZDZmNWQwMWQ0NmNkMTYzNjI2ZjQ1YzkxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yNzksNiArMjc5
LDEzIEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2aWdhdG9yK1N0b3Jh
Z2VRdW90YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svSFRNTE1l
ZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3Jl
bW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCisk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRv
dytTcGVlY2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKaW5kZXggZTk0NzI5MDYyMjA4OTFhY2Q2M2IwMTliMGY5M2E2MWFhNjBiMzQw
ZC4uZjA5NGJmOTZkZjI4NWU5Zjc1N2EzNDNjOTRiZmY1MWMxODZlMjFkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTIxMTAsNiAr
MjExMCwyMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NvdXJjZUJ1ZmZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU291cmNlQnVmZmVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hS
ZWNvZ25pdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyNjk0ZjA2NTFiM2Vl
NjcyZTNhMzBkZGFiYTgyMzBjNTdlNjliMTM2Li5iOGM4MmY4YmQzN2Y4ZDA5NDg3NTIzMDMyMDk5
OGI3OTQ4YTNmNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMwNiw2ICsz
MDYsMTMgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgXAorCSQoV2ViQ29y
ZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtQ29u
dHJvbGxlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxZTJiMzBlMDgyODNkMGFkN2UyNDY4NWUw
YjlmMjMzYmFiYTAwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgor
CisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNw
ZWVjaFJlY29nbml0aW9uKTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uPiBTcGVlY2hSZWNvZ25p
dGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTcGVlY2hSZWNvZ25pdGlvbihkb2N1bWVudCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlv
bjo6U3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9N
T2JqZWN0KGRvY3VtZW50KQoreworICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCit7CisgICAgYWJv
cnRSZWNvZ25pdGlvbigpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBTcGVlY2hSZWNvZ25pdGlv
bjo6c3RhcnRSZWNvZ25pdGlvbigpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKCkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbigpCit7Cit9CisKK2NvbnN0IGNoYXIqIFNwZWVjaFJl
Y29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlNw
ZWVjaFJlY29nbml0aW9uIjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU1NmRmZGNjNDZmNTUzZDE5YzM4M2RiYjY3NmMzYWMzZWNhOGQxZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3Bl
ZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgY29uc3QgU3RyaW5nJiBs
YW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisgICAgdm9pZCBzZXRMYW5nKGNvbnN0IFN0
cmluZyYgbGFuZykgeyBtX2xhbmcgPSBsYW5nOyB9CisKKyAgICBib29sIGNvbnRpbnVvdXMoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRpbnVvdXM7IH0KKyAgICB2b2lkIHNldENvbnRpbnVvdXMoYm9v
bCBjb250aW51b3VzKSB7IG1fY29udGludW91cyA9IGNvbnRpbnVvdXM7IH0KKworICAgIGJvb2wg
aW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2ludGVyaW1SZXN1bHRzOyB9CisgICAg
dm9pZCBzZXRJbnRlcmltUmVzdWx0cyhib29sIGludGVyaW1SZXN1bHRzKSB7IG1faW50ZXJpbVJl
c3VsdHMgPSBpbnRlcmltUmVzdWx0czsgfQorCisgICAgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVz
KCkgY29uc3QgeyByZXR1cm4gbV9tYXhBbHRlcm5hdGl2ZXM7IH0KKyAgICB2b2lkIHNldE1heEFs
dGVybmF0aXZlcyh1bnNpZ25lZCBtYXhBbHRlcm5hdGl2ZXMpIHsgbV9tYXhBbHRlcm5hdGl2ZXMg
PSBtYXhBbHRlcm5hdGl2ZXM7IH0KKworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0YXJ0UmVjb2du
aXRpb24oKTsKKyAgICB2b2lkIHN0b3BSZWNvZ25pdGlvbigpOworICAgIHZvaWQgYWJvcnRSZWNv
Z25pdGlvbigpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50
Jik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Q7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24p
OworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0
aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgp
IGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRl
cmVmKCk7IH0KKworICAgIFN0cmluZyBtX2xhbmc7CisgICAgYm9vbCBtX2NvbnRpbnVvdXMgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNlIH07CisgICAgdWludDY0
X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4OGM3OWE3M2MyZGVmNDM0M2M0MzhiNTkwZjQy
NTRiMTI2NTA4NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgRXhwb3Nl
ZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uIDogRXZlbnRUYXJnZXQgewor
ICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoKTsKKworICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFuZzsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb250aW51b3VzOworICAgIGF0
dHJpYnV0ZSBib29sZWFuIGludGVyaW1SZXN1bHRzOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIG1heEFsdGVybmF0aXZlczsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgSW1wbGVtZW50
ZWRBcz1zdGFydFJlY29nbml0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICBbSW1wbGVtZW50
ZWRBcz1zdG9wUmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdG9wKCk7CisgICAgW0ltcGxlbWVudGVk
QXM9YWJvcnRSZWNvZ25pdGlvbl0gdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
c291bmRzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7Cisg
ICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlv
ZW5kOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVy
cm9yOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjE1ODQzODZmNGVkYzFlZTE5ZDEwMWJkYjg2ZjhmOGJmZWI4YjNiOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisj
aWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0
cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0
KSwgY29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25m
aWRlbmNlKQorICAgIDogbV90cmFuc2NyaXB0KHRyYW5zY3JpcHQpCisgICAgLCBtX2NvbmZpZGVu
Y2UoY29uZmlkZW5jZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmM2MGUxMjQ3ZGYwNTJmYzQyZTJk
NWM5NDQ4MGNmZjg0MGI2ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4geworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBjcmVhdGUoU3Ry
aW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIHRyYW5z
Y3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAgICBkb3VibGUgY29uZmlk
ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwg
ZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJhMjA0NzgzODE1NWU0NWFk
OTkyMmE5MTI4YWIwMDEwM2Q1Y2I0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklU
SU9OLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRW5hYmxlZEJ5U2V0dGlu
Zz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB0cmFuc2NyaXB0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25maWRlbmNl
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0Mzg0M2I1YzZhMGUyM2FiMjVh
ZjlkNjc0MzIxMGE5OTRhMTI0Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0Nh
cHR1cmUsCisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxv
d2VkLAorICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2E0MTlkNDM4NTMxZDI1ZGE5MGFkYTdhZDA4NDMzOTA3YzM1ZDc5ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENv
bmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKK10gZW51bSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZSB7CisgICAgIm5vLXNwZWVjaCIsCisgICAgImFib3J0ZWQiLAorICAgICJhdWRpby1j
YXB0dXJlIiwKKyAgICAibmV0d29yayIsCisgICAgIm5vdC1hbGxvd2VkIiwKKyAgICAic2Vydmlj
ZS1ub3QtYWxsb3dlZCIsCisgICAgImJhZC1ncmFtbWFyIiwKKyAgICAibGFuZ3VhZ2Utbm90LXN1
cHBvcnRlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWYzMTgy
YzE4YzEyNGUyNTJmN2YxMTcxOGMyMDVlMDY1ZmJlYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNw
cApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorCisjaWYgRU5BQkxFKFNQRUVD
SF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KHR5cGUsIGluaXQsIGlz
VHJ1c3RlZCkpOworfQorCitSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCh0eXBl
LCBlcnJvciwgbWVzc2FnZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJ
bml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdCwg
aXNUcnVzdGVkKQorICAgICwgbV9lcnJvcihpbml0LmVycm9yKQorICAgICwgbV9tZXNzYWdlKGlu
aXQubWVzc2FnZSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUgZXJyb3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICA6IEV2ZW50
KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAg
ICAsIG1fZXJyb3IoZXJyb3IpCisgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKK3sKK30KKworRXZl
bnRJbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpldmVudEludGVyZmFjZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEludGVyZmFj
ZVR5cGU7Cit9CisKK307IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjVmZmYxY2ZmMDM0OTkxZGYyYjMxNWZiMTE0YjYxNWE4
NGI4YzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2
ZW50SW5pdCB7CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAg
ICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIFN0cmluZyBtZXNz
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNU
cnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmKTsKKworICAgIEV2
ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZSBtX2Vycm9yOworICAgIFN0cmluZyBtX21lc3NhZ2U7CisK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yN2Y1OWM3YTU3YjgyMDdkODAxOWE4NGZmZjUxM2VhYWIwZGJl
MDE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPVNQRUVDSF9SRUNPR05JVElPTiwKKyAgICBFbmFibGVkQnlT
ZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3Io
RE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0
RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
IGVycm9yOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisK
K2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7
CisgICAgcmVxdWlyZWQgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9N
U3RyaW5nIG1lc3NhZ2UgPSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOWM4
OGIyZGFiOWEyMTdlNzE1MWEyZmQ2NjJmMTA2MTMxODJmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApA
QCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dO
SVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKworUmVm
PFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVz
dGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQo
dHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
dWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+
JiYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50KHR5cGUsIHJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2
ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1
bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q+JiYgcmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0SW5k
ZXgpCisgICAgLCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJbnRl
cmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAorewor
ICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmI2
MTk3N2RiM2FmYTYyNDY3MmNjMTUxOTVlZTQ1Y2YyMDNhODMxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
UEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1
Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAg
ICAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07
CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBB
dG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAg
IHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdD4mJik7CisKKyAgICB1aW50NjRfdCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzdWx0SW5kZXg7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVz
dGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50
NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7
CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgdWludDY0X3QgbV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDBkODE2MDQyZTM5ZDZmZTZmNzUy
YmY2MzJjMjZkMjJkMTRjZDZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAg
RW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBFeHBvc2VkPVdpbmRvdwor
XSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1
Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgZXZlbnRJbml0
RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXg7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1
bHRzOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW5pdCA6IEV2ZW50
SW5pdCB7CisgICAgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleCA9IDA7CisgICAgcmVxdWlyZWQg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkYWUwMDEwNzc3NmU3ZDE5ZjNmNTdkNmQ1MDJiY2M3ZjRmMDA5NjIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorCisjaWYg
RU5BQkxFKFNQRUVDSF9SRUNPR05JVElPTikKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoV1RGTW92ZShh
bHRlcm5hdGl2ZXMpLCBpc0ZpbmFsKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQorICAgIDogbV9hbHRlcm5hdGl2
ZXMoV1RGTW92ZShhbHRlcm5hdGl2ZXMpKQorICAgICwgbV9pc0ZpbmFsKGlzRmluYWwpCit7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2Fs
dGVybmF0aXZlcy5zaXplKCkpID8gbV9hbHRlcm5hdGl2ZXNbaW5kZXhdLnB0cigpIDogbnVsbHB0
cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQxMzIzNTllODBkYTQ5OGFmMzYyYmRmNjk1OGUwMjdlNmQxZGRjMDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTUEVFQ0hfUkVDT0dOSVRJT04pCisKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYm
LCBib29sIGlzRmluYWwpOworCisgICAgdWludDY0X3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9hbHRlcm5hdGl2ZXMuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0ZpbmFsKCkgY29uc3QgeyByZXR1
cm4gbV9pc0ZpbmFsOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSogaXRlbSh1
aW50NjRfdCBpbmRleCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBp
c0ZpbmFsKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+
IG1fYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgbV9pc0ZpbmFsIHsgZmFsc2UgfTsKK307CisKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjViNmFiN2UwMTM2NGM3ODk3
NWUyODhhOWRhN2Q0MDM2OWNhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKQEAgLTAsMCArMSwzNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisg
ICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGl0ZW0odW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNGaW5hbDsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjllN2EwNjA1ZjFjZDUw
OWIzNjM3OTJmYzMxMmIxMjJmYTQ4MzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9SRUNPR05J
VElPTikKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KTsKKworUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdCgpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4+JiYgbGlzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QoV1RGTW92ZShsaXN0KSkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtKHVpbnQ2NF90IGlu
ZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKSA/IG1fbGlz
dFtpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDo6YWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0JiByZXN1bHQpCit7CisgICAgbV9s
aXN0LmFwcGVuZChtYWtlUmVmKHJlc3VsdCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4mJiBsaXN0KQorICAgIDogbV9saXN0KFdURk1vdmUobGlzdCkpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNhOThhOTI0MGM5MDBjNDhkYmY0OWYzNDE3ODI2MDY2ZmVlOTY1NDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoU1BFRUNIX1JFQ09HTklUSU9OKQorCisjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0Pj4mJik7CisKKyAgICBib29sIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXpl
KCk7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkg
Y29uc3Q7CisKKyAgICB2b2lkIGFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOworCitwcml2
YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCgpID0gZGVmYXVsdDsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdD4+JiYpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+IG1f
bGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdiYWJlOGZmYTM1ODJhOTUxMmE3ZjcwYWE4NmUzMWY2
MTQ5MzczNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04sCisgICAgRW5hYmxl
ZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
KyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0Tm9kZS5oCmluZGV4IDljODg3NTFlM2M2ODA2NDFkZDNkMGI0NjNhNTg1Zjg1OWIwOWMy
NzMuLjFhZTNlM2E3MjEyZjkzMGUxYTJiNWQ2ZDBiMTRkZTM3OTliZjM0NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJB
dWRpb05vZGUuaCIKKy8vICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dsb2JhbE9iamVjdC5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCA5MWM1ODc5ODVlNDA5Y2ViMjEzMWI4OGExY2M0YmY3Y2E3ZjVjM2VkLi45NGY0OTFhMDY4
YWIyNjU3OWNlMDFjZjc3MzExZjI3NjJkYjgyNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTgxLDYg
KzE4MSwxMiBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvRW50ZXJQaWN0dXJlSW5QaWN0dXJl
RXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVy
ZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCitN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9E
T01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKQEAgLTM0ODgs
NiArMzQ5NCwxMyBAQCBKU1NoYXJlRGF0YS5jcHAKIEpTU2xvdGFibGUuY3BwCiBKU1NvdXJjZUJ1
ZmZlci5jcHAKIEpTU291cmNlQnVmZmVyTGlzdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb24uY3Bw
CitKU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitKU1NwZWVj
aFJlY29nbml0aW9uRXZlbnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorSlNT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpT
U3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBlMzliNzFjNjEwNWRmNDY3YjNiMzBmNTIyOWI3ZDBkMDUyOTdiNzViLi5kZjAzY2I1NGMz
NmJjYWYwNmIyNTFjYTMyNmRkYThmYWVhZGVkYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzMwLDYgKzI3MzAsMTMgQEAK
IAkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDNDQjgwMTJGMjVFNTEwMDMz
QzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggKi87IH07CiAJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZG
OSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBH
cmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0OTA3RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUw
Q0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uaCAqLzsgfTsKKwkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi87IH07CisJCTkzNDk1MEQwMjUzOTQzNkMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi87IH07CisJCTkzNDk1MEQxMjUzOTQzNzAwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLzsgfTsKKwkJOTM0OTUwRDIyNTM5NDM3MzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmggKi87IH07CisJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmggKi87IH07CisJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCAqLzsgfTsKIAkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNj
cmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87
IH07CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEz
QzBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAv
KiBSZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMTI0Niw2ICsxMTI1MywyNiBAQAogCQk5MzQ0MkM5RDBEMkIzMzVD
MDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3ND
b2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0
OTA3RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yQ29kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25F
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBDNzI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQ5NTBDODI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0Q0MxMDkwRURC
MjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2NyaXB0U291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VC
YXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRG
NzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MzQyLDYgKzI1MzY5LDI2IEBA
CiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVz
aXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVl
Y2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKKwkJCQk5MzQ5NTBDNzI1Mzk0MzU0MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uY3BwICovLAorCQkJCTkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovLAorCQkJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8sCisJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAorCQkJCTkzNDk1MEJD
MjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCisJ
CQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaWRsICovLAorCQkJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oICovLAorCQkJCTkzNDk1MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8sCisJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwQzMy
NTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovLAorCQkJ
CTkzNDk1MEJBMjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQu
aWRsICovLAorCQkJCTkzNDk1MEMwMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oICovLAorCQkJCTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovLAorCQkJCTkzNDk1MEMxMjUzOTQzNTEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovLAorCQkJCTkzNDk1MEI5MjUz
OTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTM0
OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAg
Ki8sCisJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oICovLAorCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyog
U3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0MDE3LDYgKzM0MDY0LDEzIEBACiAJCQkJODRB
ODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQwMUEyN0FFMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDIyNTM5NDM3
MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcy
MjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaAppbmRleCA5NzAyY2M1OTcyZTk5NTc5NmIxNzg0YjY5YjAwYjYyNzE3MWY0
NDM3Li5kZWU3NmNlMmJlMzMzODUzNTA3ODM5YjcwM2M1NWNlNjMyNTQ5OGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMzgs
NiArMjM4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUpIFwKICAgICBtYWNybyhTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSBcCiAg
ICAgbWFjcm8oU2hhZG93Um9vdCkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uKSBcCisg
ICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSkgXAorICAgIG1hY3JvKFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudCkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uRXZl
bnQpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCkgXAorICAgIG1hY3JvKFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCkgXAogICAgIG1hY3JvKFN0YXRpY1JhbmdlKSBcCiAg
ICAgbWFjcm8oU3RlcmVvUGFubmVyTm9kZSkgXAogICAgIG1hY3JvKFN0eWxlUHJvcGVydHlNYXBS
ZWFkT25seSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5NjBh
NzM3ZmJlMjM1MWU1NDlkZDQ0NGM3ZjYzLi43NjAzZTVjZTg2YmExZjA4N2Y5MThiMzgzNTE1M2Rl
YjdlMmQ3YmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtNjIsNiArNjIsOCBAQCBS
VENEYXRhQ2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hhbmdl
RXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudCBjb25k
aXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfUkVDT0dOSVRJT04KK1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNIX1JFQ09HTklUSU9OCiBTcGVl
Y2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENvbnRl
eHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAy
ZDNlN2QzMzc3YzEyLi5iYTIzNGE0M2MzMjE2MzU0ZTBhMzU0YzhkYmMxMTdhNTRkMWUxMDU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcg
QEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTb3Vy
Y2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRp
dGlvbmFsPU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U1BFRUNI
X1JFQ09HTklUSU9OCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNI
X1NZTlRIRVNJUwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUgY29u
ZGl0aW9uYWw9VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGViYTVkYTgwMWEyN2ZmOTli
MDY3NzEwMzUxZWIyNDY4ZmE2OTQwMGIuLjdlYzUwNDY0NTM3MzVjMjUyMjMyZDI3MTU4NDRlODQ4
N2E3YzI1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjg5LDYgKzI4OSw3IEBACiAjZGVm
aW5lIFdlYktpdE1lZGlhUmVjb3JkZXJFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlh
UmVjb3JkZXJFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJv
cGVydGllc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9y
bVByb3BlcnRpZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDb250YWN0UGlja2VyQVBJRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDb250YWN0UGlja2VyQVBJRW5hYmxlZCIKKyNkZWZpbmUg
V2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZCIKIAogLy8gVGhlIHByZWZlcmVuY2Uga2V5cyBiZWxvdyB0aGlz
IHBvaW50IGFyZSBkZXByZWNhdGVkIGFuZCBoYXZlIG5vIGVmZmVjdC4gVGhleSBzaG91bGQKIC8v
IGJlIHJlbW92ZWQgd2hlbiBpdCBpcyBjb25zaWRlcmVkIHNhZmUgdG8gZG8gc28uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAy
YTdlOGU0YjdlNDU0MjFjNjBlNjU2NjQ3YmMzM2FmOGI2NzJlN2U4Li5hMTA4MzhjZTkxZmI1NjY2
ZTkzODE2YWVlMDVlMDJjM2IwYmQwMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTMzNzUsNiArMzM3NSwxNiBAQCBzdGF0
aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xW
YWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0Vu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClzcGVlY2hSZWNvZ25pdGlvbkVuYWJs
ZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6Zmxh
ZyBmb3JLZXk6V2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlT2Jz
b2xldGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA5YmMxMGNhNzI1MTAzNTdiN2RmNmRjNWZhMTY0Zjhh
NzgwOThiMDA5Li42NjdjYzc3MTUzOTY5ZTk1NzQ5Nzg3NTA4ZmQ5MTlmNDhkZjkyM2VlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKQEAgLTM0OCw2ICszNDgsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZl
cmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFSZWNvcmRlckVuYWJsZWQ6KSBC
T09MIF9tZWRpYVJlY29yZGVyRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENT
U0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGNvbnRhY3RQaWNrZXJBUElFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgc3BlZWNoUmVjb2duaXRpb25FbmFibGVkOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYlBy
ZWZlcmVuY2VzIChXZWJQcml2YXRlRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ODJlM2ZkOTM2OWZjZTk3YWYzMzU0NDI5ZWNm
NjdiZDg2MDQyNWNlLi40ZTRiYTUyNzViMDFkOTQ2N2IxM2FlMGQ1ZmQzM2FkYzUyNjM2ZjZkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZW5hYmxlRXhwZXJp
bWVudGFsRmVhdHVyZXMpOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisKIDIwMjAtMTAtMTkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjY4MTE1KSBbR1RLXSBCdWlsZCBmYWlsdXJlcyB3aXRo
IEdDQyA3IChVYnVudHUgMTguMDQpIGFuZCBHQ0MgOCAoRGViaWFuIEJ1c3RlcikKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IDg3OGI2MmFhNTFiNDExYzA3MmY1Njc4MjE0NGM3NGVj
OGI3ZjZkOTYuLmMzODMxODgzZGQxMGEyNzQ1MjBmYzg5MzY4YjkyZDdkMDg1OGUwZjUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNjQsNiArNjQsNyBAQCBzdHJ1Y3QgVGVzdE9w
dGlvbnMgewogICAgIGJvb2wgZW5hYmxlUmVxdWVzdElkbGVDYWxsYmFjayB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVSZXNpemVPYnNlcnZlciB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVX
ZWJHUFUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlU3BlZWNoUmVjb2duaXRpb24geyB0cnVl
IH07CiAKICAgICAvLyBUZXN0IFJ1bm5lciBTcGVjaWZpYyBGZWF0dXJlcwogICAgIGJvb2wgZHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA3YmE5MDgzZWYxM2U5MTEwMjY5NTlmZGM1NGYwNGZl
MDE1NmJkMDQ2Li5iMjg3ZTkwOGRlNGZkM2IxZDdhNGRmZGE5NjViYmJmOWRlMTdhMGRjIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04NDEsNiArODQx
LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5j
ZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3BlY3RSYXRpb09mSW1nRnJv
bVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldEF1ZGlv
V29ya2xldEVuYWJsZWQ6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0U3BlZWNoUmVjb2duaXRp
b25FbmFibGVkOllFU107CiB9CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAtOTYz
LDYgKzk2NCw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRW
YWx1ZXMoKQogCiAgICAgW3ByZWZlcmVuY2VzIHNldFdlYlNRTEVuYWJsZWQ6WUVTXTsKIAorICAg
IFtwcmVmZXJlbmNlcyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6WUVTXTsKKwogICAgIFtX
ZWJQcmVmZXJlbmNlcyBfY2xlYXJOZXR3b3JrTG9hZGVyU2Vzc2lvbl07CiAgICAgW1dlYlByZWZl
cmVuY2VzIF9zZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVBY2NlcHRQb2xpY3k6
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW5dOwogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDBlOWI5YWQxYmUzMzFhOTI5ZjAwMTgxMDY1NzEwNzQ5MzIzYTZiYmMuLjAzNTI2NWNi
MTdhNWIwZDY5MzAyYTkwYmI5OWQ3YjdhZTFjYzE1YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcw
MzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTAtMTkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0IHNwZWVjaCB0ZXN0cyBm
cm9tIFdQVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOTJhMmQ2MTVjOTIzM2M5
N2E5YTJjMzYyMmI5NDI1Y2Q4NzA5ZDZmYy4uYjhiNzQ1MDgzNjNmY2VkMjFkZDE5YWViMzRmZTVj
NmU3OGM2MWJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMTAtMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFJlY29nbml0aW9uLWJh
c2ljcy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nw
ZWVjaC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTEwLTE5ICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCBzcGVlY2gg
dGVzdHMgZnJvbSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zcGVlY2gtYXBpL1NwZWVjaFJlY29nbml0aW9uLWJhc2ljcy5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggN2RkNmE4YTU2MDAxZTI0Nzc3ZWJiNWYzOWE1Y2Q2NGY3MGZiZDFlMy4uMGM4YjY4NDMy
MWZmZTgyZGY4MGI3ZmJlMzM2Y2VjYTY5MWE4YTA0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFJlY29nbml0
aW9uLWJhc2ljcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFJlY29nbml0aW9uLWJhc2lj
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gYmFzaWNzIENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uCitGQUlM
IFNwZWVjaFJlY29nbml0aW9uIGJhc2ljcyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAncmVjby5ncmFtbWFycy5sZW5ndGgnKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCAx
Y2Y0NzNhOTJjMGQwMTkyNTkwM2Y4YzFkMmFkZDBlNTc5MWU0ZTA5Li4xYTgxZGFjYzc1YmI3NDky
YjUwZDJlMDY4ZjExOTdjM2NmZjBmMGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTExLDkzICsx
MSw5MyBAQCBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVz
IFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5k
b3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1G
QUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9w
ZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGdy
YW1tYXJzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGFuZyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGNv
bnRpbnVvdXMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpbnRlcmltUmVzdWx0cyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG1heEFsdGVybmF0aXZlcyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIHN0YXJ0KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBzdG9wKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBhYm9ydCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hdWRpb3N0YXJ0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zb3VuZHN0YXJ0IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zcGVlY2hzdGFydCBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlM
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNoZW5kIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zb3VuZGVuZCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9l
bmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJl
c3VsdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9u
bm9tYXRjaCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG9uZXJyb3IgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvbnN0YXJ0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25lbmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBtdXN0IGJlIHByaW1hcnkgaW50
ZXJmYWNlIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFNwZWVjaFJlY29nbml0aW9uKCkg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJn
cmFtbWFycyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRp
b24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNv
bnRpbnVvdXMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0
aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25p
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW50ZXJpbVJlc3VsdHMiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAibWF4QWx0ZXJuYXRpdmVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVk
IG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0YXJ0KCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic3RvcCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1
YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVk
IG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFib3J0KCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25hdWRpb3N0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4
cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc291
bmRzdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRp
b24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNwZWVjaHN0YXJ0IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uc3BlZWNoZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBV
bmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwg
YnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVl
Y2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uc291bmRlbmQiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4g
ZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAib25hdWRpb2VuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
bmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnJlc3VsdCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24g
d2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlM
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvbm5vbWF0Y2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25lcnJv
ciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1G
QUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4
cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZW5k
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBl
eHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1G
QUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgZXJyb3IgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXNzYWdlIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUi
IGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
dHJhbnNjcmlwdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogYXR0cmlidXRlIGNvbmZpZGVuY2UgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaXNGaW5hbCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4
cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogYXR0cmlidXRlIGxlbmd0
aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGl0ZW0odW5zaWduZWQgbG9uZykgYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBu
YW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
RXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRJ
bmRleCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFj
ZTogYXR0cmlidXRlIHJlc3VsdHMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3Ry
dWN0b3IiIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eQorRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBncmFtbWFycyBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZl
IGEgcHJvcGVydHkgImdyYW1tYXJzIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYW5nCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGNvbnRpbnVvdXMKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW50ZXJpbVJlc3VsdHMKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4QWx0ZXJuYXRpdmVzCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHN0YXJ0KCkKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgpCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFib3J0KCkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hdWRpb3N0YXJ0CitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRzdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaHN0YXJ0CitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNoZW5kCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRlbmQKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hdWRpb2VuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnJlc3VsdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm5vbWF0Y2gKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgb25lcnJvcgorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnN0YXJ0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9uZW5kCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIG11c3QgYmUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgbmV3IFNwZWVjaFJlY29nbml0aW9uKCkKK1BBU1MgU3RyaW5naWZpY2F0aW9u
IG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpCitGQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJncmFt
bWFycyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZ3Jh
bW1hcnMiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImxhbmciIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
b250aW51b3VzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
aW50ZXJpbVJlc3VsdHMiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJtYXhBbHRlcm5hdGl2ZXMiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzdGFydCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAic3RvcCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYWJvcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9uYXVkaW9zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uc291bmRzdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9uc3BlZWNoc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbnNwZWVjaGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uc291bmRlbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbmF1ZGlvZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25yZXN1bHQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbm5vbWF0Y2giIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbmVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAib25zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm9uZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZSBvYmplY3QgbmFtZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBlcnJvcgorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVzc2FnZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFj
ZSBvYmplY3QgbmFtZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0
b3IiIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHJhbnNjcmlwdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlIGludGVyZmFjZTogYXR0cmlidXRlIGNvbmZpZGVuY2UKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2Jq
ZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9w
ZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBs
ZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
aXRlbSh1bnNpZ25lZCBsb25nKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBpc0ZpbmFsCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNT
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogYXR0cmli
dXRlIGxlbmd0aAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBv
cGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlw
ZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0SW5kZXgKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRzCiBGQUlMIFNwZWVj
aEdyYW1tYXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hHcmFtbWFyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlz
c2luZwogRkFJTCBTcGVlY2hHcmFtbWFyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaEdyYW1t
YXIiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBtaXNzaW5nCiBGQUlMIFNwZWVj
aEdyYW1tYXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hHcmFtbWFyIiBtaXNzaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGI3N2U2OTQyNDEwMjQ0MjQ2NmYwZmY4ZTcwMDg4YTAyZmUzMjZj
NWEuLjRiYzU2NWFmZmEyNmU1MmYwOWM5ZTU1YjdlZDYzZDA4Y2MxYjMxYTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NCw2ICs0NCw4IEBAIHdlYmtp
dC5vcmcvYi8xODE5NjQgZmFzdC90ZXh0L21hYy9zZWxlY3QtY2hhcmFjdGVyLWJlZm9yZS16ZXJv
LXdpZHRoLWpvaW5lci5odG1sCiBwb2ludGVyZXZlbnRzL21vdXNlIFsgUGFzcyBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMgWyBQYXNzIF0KIAoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpIFsgUGFzcyBdCisKICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVj
dG9yaWVzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411882</attachid>
            <date>2020-10-20 10:29:32 -0700</date>
            <delta_ts>2020-10-20 10:39:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201020102931.patch</filename>
            <type>text/plain</type>
            <size>111183</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5Y2I0YTZlODE4OThkM2RlOWQwNTYx
NWM5MGU1ZTJjMzcyZDMzYjguLmI2ZDMwMDA1MWYwYzNiMDJkMTczZTRiNjNlYzgwMDhkNDdkZGRm
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoK
KwogMjAyMC0xMC0xOSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIyNjgxMTUpIFtHVEtdIEJ1aWxkIGZhaWx1cmVzIHdpdGggR0NDIDcgKFVi
dW50dSAxOC4wNCkgYW5kIEdDQyA4IChEZWJpYW4gQnVzdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4M2Uz
ZmIzOGQ2Mjc2NmJjNTQ2YWQxNTBlZGUxMGE5NmU2NGRjYmQuLmM0OGU0MjdkNGQ2MjQ5NDcyNjRi
N2EwOTc3NTAwOTU4NTk0MDZlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAyMC0x
MC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1
YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiaW5kaW5ncyBjb2RlIGFuZCBh
IGZlYXR1cmUgZmxhZyBmb3IgU3BlZWNoUmVjb2duaXRpb24uCisgICAgICAgIFNwZWM6IGh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vc3BlZWNoLWFwaS8jc3BlZWNocmVjby1zZWN0aW9uLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW5jbHVkZXMgYWxsIGludGVyZmFjZXMgb2YgU3BlZWNoUmVjb2duaXRp
b24sIGV4Y2VwdCBTcGVlY2hHcmFtbWFyIGFuZCBTcGVlY2hHcmFtbWFyTGlzdC4gV2UgaGF2ZSBu
b3QKKyAgICAgICAgZGVjaWRlZCB3aGF0IGdyYW1tYXIgZm9ybWF0IGFuZCB0eXBlcyB3ZSBhcmUg
Z29pbmcgdG8gc3VwcG9ydCwgb3IgaG93IHdlIGFyZSBnb2luZyB0byBzdXBwb3J0IGl0IGlmIGl0
IGlzIG5vdAorICAgICAgICBkZWZpbmVkIGluIGV4aXNpdGluZyBzcGVlY2ggcmVjb2duaXRpb24g
c2VydmljZS4gU28gbGV0J3MgYWRkIHRob3NlIGludGVyZmFjZXMgYWZ0ZXIgd2UgZmlndXJlIHRo
aXMgb3V0LiAKKworICAgICAgICBObyBuZXcgdGVzdHMuIFJlYmFzZWxpbmUgZXhpc3RpbnMgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
OjpzdG9wUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmFib3J0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmxhbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246
OnNldExhbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNvbnRpbnVv
dXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldENvbnRp
bnVvdXMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmludGVyaW1SZXN1
bHRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRJbnRl
cmltUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bWF4QWx0
ZXJuYXRpdmVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpz
ZXRNYXhBbHRlcm5hdGl2ZXMpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2ZW50SW50
ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6
aXRlbSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDo6aXRlbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5o
OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
Lmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbjoKKwogMjAyMC0xMC0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggY3Jhc2ggaW4gUmVuZGVyTGF5ZXJCYWNraW5nOjp1
cGRhdGVDbGlwcGluZ1N0YWNrTGF5ZXJHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggNTUzYzA0YTczN2MzZDcxYTk4YjZhMjUxNGQ4YWY1NDAyNDkzNjQ5OC4uNDZkYTUz
NTFkNzdkZTQwNWVhZGRlMDhiODM3ZTRkZjAyYjJlYjkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgt
W1dlYlByZWZlcmVuY2VzIHNwZWVjaFJlY29nbml0aW9uRW5hYmxlZF0pOgorICAgICAgICAoLVtX
ZWJQcmVmZXJlbmNlcyBzZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6XSk6CisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKwogMjAyMC0xMC0xNyAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTQzMCk6
IEZpeCAtV3N0cmluZy1jb25jYXRlbmF0aW9uIHdhcm5pbmcgZnJvbSBvcGVuIHNvdXJjZSBjbGFu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBmNjU2NmM1ODAwMTdlM2RmOTlhZWFl
MmY1ZGYzMjY5ZWYxMjIxNjBiLi43MGE5YmVlYjY1NGU1NTEwYjJiZjBlMjJkOGUxNjQ3NGI5OTZi
ZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNzI4LDYgKzcyOCwxOCBAQCBT
aG91bGREZWZlckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JGaXJz
dFBhaW50OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiB0cnVlCiAKK1NwZWVjaFJlY29n
bml0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNwZWVj
aFJlY29nbml0aW9uIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNw
ZWVjaFJlY29nbml0aW9uIG9mIFdlYlNwZWVjaCBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRl
ZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklY
TUU6IFRoaXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIGlz
IHRydWUgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhhdCBm
b3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwuCiBTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IGUyMjI5ODc1YjQ3N2IxYzZi
YWJiYzVmZWRkOTdjYTU3MjkxZDNjMjMuLjBiNzM4ZDM4ZGE4YzY4ZDVhYmZiYTcyODZkY2JjMzRj
YmU3ZTQ3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtNDQ1LDYgKzQ0NSwxMCBAQAog
I2RlZmluZSBFTkFCTEVfU01PT1RIX1NDUk9MTElORyAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVk
KEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQorI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQogI2Rl
ZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNmYxMzYzNzFkODlhYmJkOTZkZmFkYmZmMjEzYjdmNzc3OGQxNjIzYS4uMTYwNzdkZTY4
MjE4MDYzODY3ZWIyZjhjNDI3OTllNTNmMjI0OTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTQzNiw2ICs0MzYsMTQgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1
bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmlkbAogICAgIE1vZHVsZXMvcmVtb3Rl
cGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKIAorICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRs
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAg
ICAgTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA3YTQ1NDFkMTdmZWIzZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZj
MjkwLi4wMjNhOWRmY2QzNjNkMmZkNmY1ZDAxZDQ2Y2QxNjM2MjZmNDVjOTFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI3OSw2ICsy
NzksMTMgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3Rv
cmFnZVF1b3RhLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1M
TWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9y
ZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
cmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwK
KyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2lu
ZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFjZDYzYjAxOWIwZjkzYTYxYWE2MGIz
NDBkLi5mMDk0YmY5NmRmMjg1ZTlmNzU3YTM0M2M5NGJmZjUxYzE4NmUyMWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjExMCw2
ICsyMTEwLDIwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU291cmNlQnVmZmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24u
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aFJlY29nbml0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRp
b25FdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVz
aXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2OTRmMDY1MWIz
ZWU2NzJlM2EzMGRkYWJhODIzMGM1N2U2OWIxMzYuLmI4YzgyZjhiZDM3ZjhkMDk0ODc1MjMwMzIw
OTk4Yjc5NDhhM2Y1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzA2LDYg
KzMwNiwxMyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNv
cmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNv
cmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3ku
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1D
b250cm9sbGVyLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiMTc0ZDExNjJkNWMxNzZiMWQ0MGVj
ZmIzNmZlYjA0NjE3MGY3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisKK1JlZjxTcGVlY2hS
ZWNvZ25pdGlvbj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQp
KTsKK30KKworU3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBk
b2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sKKyAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uKQoreworICAgIGFib3J0UmVjb2duaXRpb24oKTsKK30KKworRXhjZXB0aW9u
T3I8dm9pZD4gU3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24oKQoreworICAgIHJl
dHVybiB7IH07Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigp
Cit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24oKQorewor
fQorCitjb25zdCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2OTRkMGIxZGM2MThiYzI1MzFmNjZmZjgwZmJi
MTBlZTRjZGYzOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1
bWVudDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpbmVEYXRhICB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbj4gY3Jl
YXRlKERvY3VtZW50Jik7CisKKyAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVy
biBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fbGFu
ZyA9IGxhbmc7IH0KKworICAgIGJvb2wgY29udGludW91cygpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGludW91czsgfQorICAgIHZvaWQgc2V0Q29udGludW91cyhib29sIGNvbnRpbnVvdXMpIHsgbV9j
b250aW51b3VzID0gY29udGludW91czsgfQorCisgICAgYm9vbCBpbnRlcmltUmVzdWx0cygpIGNv
bnN0IHsgcmV0dXJuIG1faW50ZXJpbVJlc3VsdHM7IH0KKyAgICB2b2lkIHNldEludGVyaW1SZXN1
bHRzKGJvb2wgaW50ZXJpbVJlc3VsdHMpIHsgbV9pbnRlcmltUmVzdWx0cyA9IGludGVyaW1SZXN1
bHRzOyB9CisKKyAgICB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMoKSBjb25zdCB7IHJldHVybiBt
X21heEFsdGVybmF0aXZlczsgfQorICAgIHZvaWQgc2V0TWF4QWx0ZXJuYXRpdmVzKHVuc2lnbmVk
IG1heEFsdGVybmF0aXZlcykgeyBtX21heEFsdGVybmF0aXZlcyA9IG1heEFsdGVybmF0aXZlczsg
fQorCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRSZWNvZ25pdGlvbigpOworICAgIHZvaWQg
c3RvcFJlY29nbml0aW9uKCk7CisgICAgdm9pZCBhYm9ydFJlY29nbml0aW9uKCk7CisKKyAgICB1
c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb24oRG9jdW1lbnQmKTsKKworICAgIC8vIEFjdGl2
ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdDsK
KyAgICB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbik7CisKKyAgICAvLyBFdmVudFRh
cmdldAorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsgfQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQor
ICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgU3Ry
aW5nIG1fbGFuZzsKKyAgICBib29sIG1fY29udGludW91cyB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2ludGVyaW1SZXN1bHRzIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX21heEFsdGVybmF0aXZl
cyB7IDEgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MDUyMzIxNjM2MGRjNmI4MTU5NmExZmY4ZmQxOWQzZTYxNGYwNDU2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAg
IEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgRXhwb3NlZD1XaW5kb3cK
K10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uIDogRXZlbnRUYXJnZXQgeworICAgIFtDYWxs
V2l0aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoKTsKKworICAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
bGFuZzsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBjb250aW51b3VzOworICAgIGF0dHJpYnV0ZSBi
b29sZWFuIGludGVyaW1SZXN1bHRzOworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG1heEFs
dGVybmF0aXZlczsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbiwgSW1wbGVtZW50ZWRBcz1zdGFy
dFJlY29nbml0aW9uXSB1bmRlZmluZWQgc3RhcnQoKTsKKyAgICBbSW1wbGVtZW50ZWRBcz1zdG9w
UmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdG9wKCk7CisgICAgW0ltcGxlbWVudGVkQXM9YWJvcnRS
ZWNvZ25pdGlvbl0gdW5kZWZpbmVkIGFib3J0KCk7CisKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uYXVkaW9zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc291bmRzdGFy
dDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoc3RhcnQ7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNwZWVjaGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uc291bmRlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvZW5kOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bHQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbm5vbWF0Y2g7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVycm9yOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9uZW5kOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0
ZGRmNmU4ZWU5MzQ2NmI1NWNiZDE2ZGUxNTM2NWQxZjUwYmU2OQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSk7CisKK1Jl
ZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlOjpjcmVhdGUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZShXVEZN
b3ZlKHRyYW5zY3JpcHQpLCBjb25maWRlbmNlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlw
dCwgZG91YmxlIGNvbmZpZGVuY2UpCisgICAgOiBtX3RyYW5zY3JpcHQodHJhbnNjcmlwdCkKKyAg
ICAsIG1fY29uZmlkZW5jZShjb25maWRlbmNlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUxZDc3NjM1ZjYzYTY0N2Nk
YmQxNDc3OGQ0MzNiMzBkZjQ1ZWExMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZT4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlPiBjcmVhdGUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZp
ZGVuY2UpOworCisgICAgU3RyaW5nIHRyYW5zY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5z
Y3JpcHQ7IH0KKyAgICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlk
ZW5jZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwgZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3Ry
aW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3VibGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZWQ3N2FlZGJjMjg5M2Y4NzkwNTUzMWU3NjgwZDRmMTMyOTI3ZDk1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24s
CisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5jZTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NTUyZWM0ODM5ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2Uw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZSB7CisgICAgTm9TcGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRp
b0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAgICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RB
bGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisgICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzcxYjk0Mjg1ZDY0YjFjMTY3ZDc1YTJlMDViMTZlY2Q5NmRlZDJlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVtIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8tc3BlZWNoIiwKKyAgICAiYWJvcnRlZCIsCisgICAg
ImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3b3JrIiwKKyAgICAibm90LWFsbG93ZWQiLAorICAg
ICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAgICAiYmFkLWdyYW1tYXIiLAorICAgICJsYW5ndWFn
ZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4YmE0NWRjMjhkNGYyYjQxYzdjYTk1ODhhMjc4ZmM5ODc2YjdjZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgiCisKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworCitS
ZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVh
dGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJy
b3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgZXJyb3IsIG1lc3NhZ2UpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKKyAgICA6IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZXJyb3Io
aW5pdC5lcnJvcikKKyAgICAsIG1fbWVzc2FnZShpbml0Lm1lc3NhZ2UpCit7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgOiBFdmVudCh0eXBlLCBFdmVudDo6Q2FuQnViYmxlOjpO
bywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pCisgICAgLCBtX2Vycm9yKGVycm9yKQorICAgICwg
bV9tZXNzYWdlKG1lc3NhZ2UpCit7Cit9CisKK0V2ZW50SW50ZXJmYWNlIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAoreworICAgIHJldHVybiBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbnRlcmZhY2VUeXBlOworfQorCit9OyAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDMxYzZhMDdhYTlk
OWM1NGQyZjA4ZDliNTg4OTU4MDI0MDEwZTNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBmaW5hbCA6IHB1
YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQpOworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXZlbnRJbml0IHsKKyAg
ICAgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgICAgIFN0cmluZyBt
ZXNzYWdlOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkID0g
SXNUcnVzdGVkOjpObyk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3Io
KSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CisgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7
IHJldHVybiBtX21lc3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAg
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAgRXZlbnRJbnRlcmZhY2Ug
ZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKworICAgIFNwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlIG1fZXJyb3I7CisgICAgU3RyaW5nIG1fbWVzc2FnZTsKKworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFj
ZWZlZTNhZmM1OWEzZTc1ZGUyZmM1ODkyNTk4MjNhMmRjNmNkOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQnlTZXR0
aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9N
U3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgZXZlbnRJbml0RGlj
dCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVy
cm9yOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKK307CisKK2Rp
Y3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7Cisg
ICAgcmVxdWlyZWQgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgRE9NU3Ry
aW5nIG1lc3NhZ2UgPSAiIjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMDc1YWNm
NmYzMzM1ZWJlZjFjNmVmNmFhODExY2NiMzBkMDgyNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29n
bml0aW9uRXZlbnQpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25FdmVudD4gU3BlZWNoUmVjb2du
aXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGlu
aXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNwZWVjaFJlY29nbml0aW9uRXZlbnQodHlwZSwgcmVzdWx0SW5kZXgsIFdURk1vdmUocmVz
dWx0cykpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25F
dmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQg
aXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9y
ZXN1bHRJbmRleChpbml0LnJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRzKGluaXQucmVzdWx0
cykKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVu
dChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQorICAgIDogRXZlbnQodHlwZSwg
RXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9y
ZXN1bHRJbmRleChyZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHMp
KQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudElu
dGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbnRl
cmZhY2VUeXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGFmZTFlZGJkYjBjOGI5ODBjOWI1YmYxYmFiNjM3NTY4ZmZiZTI0YgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBmaW5h
bCA6IHB1YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7Cisg
ICAgICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYs
IElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRl
eCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICB1aW50NjRf
dCByZXN1bHRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0SW5kZXg7IH0KKyAgICBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jlc3Vs
dHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4mJik7CisKKyAgICBFdmVudEludGVyZmFjZSBl
dmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdWludDY0X3QgbV9yZXN1bHRJ
bmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBtX3Jlc3VsdHM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgxNTMxYThlZmJiZjFkOTU5Y2RjYjEyNGQ2N2ViMDkwYzY1ZDNhZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRp
bmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5n
IHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHJlc3VsdEluZGV4OworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVzdWx0czsKK307CisKK2Rp
Y3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHVu
c2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOworICAgIHJlcXVpcmVkIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NjE5MzIzNjdiYTNkYzgwOGIwZjYyNWRkYWY3ZjczNjQwZjUyYzViCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
Y3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKKworUmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6Y3JlYXRlKFZlY3RvcjxSZWY8
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmlu
YWwpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQo
V1RGTW92ZShhbHRlcm5hdGl2ZXMpLCBpc0ZpbmFsKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQorICAgIDogbV9h
bHRlcm5hdGl2ZXMoV1RGTW92ZShhbHRlcm5hdGl2ZXMpKQorICAgICwgbV9pc0ZpbmFsKGlzRmlu
YWwpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5k
ZXggPCBtX2FsdGVybmF0aXZlcy5zaXplKCkpID8gbV9hbHRlcm5hdGl2ZXNbaW5kZXhdLnB0cigp
IDogbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTljZjkwZmQzOGFlYzAyZDk3MTIzYzIwNTk2MGZjOTQ5YzFiZWY2YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBpc0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0ZXJuYXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wg
aXNGaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGaW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmU+PiBtX2FsdGVybmF0aXZlczsKKyAgICBib29sIG1faXNGaW5h
bCB7IGZhbHNlIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNmZWZl
OGYyNzM3MWQ0MmJmMzViOTQ0ZDczZmM2ZWFlOWIyMzRmOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApA
QCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9U3Bl
ZWNoUmVjb2duaXRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBv
c2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgeworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmluYWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzg1MTAzNTM5MWYxNGQwZGFhNjAwYmE1MGI0YjY0ZGM5ZGI1OGRj
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KTsKKworUmVm
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdCgpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4+JiYgbGlzdCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QoV1RGTW92ZShsaXN0KSkpOworfQorCitTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtKHVpbnQ2NF90IGlu
ZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKSA/IG1fbGlz
dFtpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDo6YWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0JiByZXN1bHQpCit7CisgICAgbV9s
aXN0LmFwcGVuZChtYWtlUmVmKHJlc3VsdCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0Pj4mJiBsaXN0KQorICAgIDogbV9saXN0KFdURk1vdmUobGlzdCkpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWQ3YWUwOTQ1YzlhMjI1Yzc2ZjdlNGQzMzAzMGRiMDE5ODc5OGJiNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Owor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgZmluYWwgOiBwdWJsaWMgUmVmQ291
bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBS
ZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4+JiYpOworCisgICAgYm9vbCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX2xpc3Quc2l6ZSgpOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWlu
dDY0X3QgaW5kZXgpIGNvbnN0OworCisgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQmKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoKSA9IGRl
ZmF1bHQ7CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNo
UmVjb2duaXRpb25SZXN1bHQ+PiYmKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+PiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDU2ZTQyYjQ3M2UxMDE1MjBiMzg3NmY1ODBj
YzNlMWVhNTBlZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRl
cmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaAppbmRleCA5Yzg4NzUxZTNjNjgw
NjQxZGQzZDBiNDYzYTU4NWY4NTliMDljMjczLi4xYWUzZTNhNzIxMmY5MzBlMWEyYjVkNmQwYjE0
ZGUzNzk5YmYzNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXVkaW9Ob2RlLmgiCisvLyAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhhMWNj
NGJmN2NhN2Y1YzNlZC4uOTRmNDkxYTA2OGFiMjY1NzljZTAxY2Y3NzMxMWYyNzYyZGI4MjZjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTE4MSw2ICsxODEsMTIgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0
dXJlL0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcAogTW9kdWxlcy9waWN0dXJlaW5waWN0
dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAogTW9kdWxlcy9waWN0dXJl
aW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXli
YWNrL1JlbW90ZVBsYXliYWNrLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24u
Y3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzRXZlbnQuY3BwCkBAIC0zNDg4LDYgKzM0OTQsMTMgQEAgSlNTaGFyZURhdGEuY3BwCiBK
U1Nsb3RhYmxlLmNwcAogSlNTb3VyY2VCdWZmZXIuY3BwCiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3Bw
CitKU1NwZWVjaFJlY29nbml0aW9uLmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorSlNTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAog
SlNTcGVlY2hTeW50aGVzaXMuY3BwCiBKU1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcAogSlNTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTM5YjcxYzYxMDVkZjQ2N2IzYjMwZjUyMjli
N2QwZDA1Mjk3Yjc1Yi4uZGYwM2NiNTRjMzZiY2FmMDZiMjUxY2EzMjZkZGE4ZmFlYWRlZGE3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjczMCw2ICsyNzMwLDEzIEBACiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBU
ZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQzQ0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9Owog
CQk5MzQ0MkM5RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQy
QjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5
MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNB
MCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CisJ
CTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBC
QzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9
OworCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1
MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovOyB9
OworCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5
NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggKi87
IH07CisJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBD
OTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovOyB9OworCQk5
MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEMxMjUzOTQz
NTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oICovOyB9OworCQk5MzQ5NTBE
NjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDNDI1Mzk0MzUy
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi87IH07CiAJCTkzNEND
MTBBMEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIg
LyogU2NyaXB0U291cmNlQ29kZS5oICovOyB9OwogCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJy
b3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyNDYsNiArMTEyNTMs
MjYgQEAKIAkJOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDQyQzlGMEQyQjMzNjAw
MDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBBRDI1Mzk0MzQ2
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQUYyNTM5NDM0NzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MzQ5NTBCNDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCODI1Mzk0MzRDMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjky
NTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEJBMjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMwMjUz
OTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzQyNTM5NDM1
MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTBDOTI1Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNENDMTA5MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFNvdXJjZUNvZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzcwRDVBNkVGRjAwMDE4RDY5IC8q
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxMzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yNTM0Miw2ICsyNTM2OSwyNiBAQAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAv
KiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1
MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFC
OTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCisJCQkJ
OTM0OTUwQzcyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmNwcCAqLywKKwkJ
CQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLywKKwkJ
CQk5MzQ5NTBBRDI1Mzk0MzQ2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovLAor
CQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcCAqLywKKwkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5oICovLAorCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5MzQ5NTBBRjI1Mzk0MzQ3
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLywKKwkJCQk5MzQ5NTBC
ODI1Mzk0MzRDMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsICovLAor
CQkJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuY3BwICovLAorCQkJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBCQTI1Mzk0MzREMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLywKKwkJCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8sCisJCQkJOTM0OTUwQzkyNTM5
NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLywKKwkJCQk5MzQ5NTBC
NDI1Mzk0MzQ5MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgKi8sCisJCQkJ
OTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAq
LywKKwkJCQk5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCAqLywKKwkJCQk5MzQ5NTBCOTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQuaWRsICovLAorCQkJCTkzNDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwICovLAorCQkJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLywKKwkJCQk5MzQ5NTBDNTI1Mzk0
MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQlB
QTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlB
QTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEy
QTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zNDAx
Nyw2ICszNDA2NCwxMyBAQAogCQkJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VH
cmFwaGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyog
U3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBD
RDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMDI1Mzk0MzZDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQxMjUz
OTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzNDk1MEQyMjUzOTQzNzMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENDI1Mzk0MzdDMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ2MjUzOTQz
ODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVz
aXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3MmU5
OTU3OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uZGVlNzZjZTJiZTMzMzg1MzUwNzgzOWI3MDNj
NTVjZTYzMjU0OThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKSBcCiAgICAgbWFjcm8oU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbikgXAogICAgIG1hY3JvKFNoYWRvd1Jvb3QpIFwKKyAgICBtYWNy
byhTcGVlY2hSZWNvZ25pdGlvbikgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpIFwKKyAgICBt
YWNybyhTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpIFwKICAg
ICBtYWNybyhTdGF0aWNSYW5nZSkgXAogICAgIG1hY3JvKFN0ZXJlb1Bhbm5lck5vZGUpIFwKICAg
ICBtYWNybyhTdHlsZVByb3BlcnR5TWFwUmVhZE9ubHkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KaW5kZXggNzJjZmFhNWViMDc1OTYwYTczN2ZiZTIzNTFlNTQ5ZGQ0NDRjN2Y2My4uN2I3ODJi
ODEyM2QyMTM4ZmNlMjI0Zjk0OWFkYzA5ODJlOTA3M2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgUlRDRGF0YUNoYW5uZWxFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBSVENEVE1GVG9uZUNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDVHJhY2tFdmVudCBj
b25kaXRpb25hbD1XRUJfUlRDCitTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQKK1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQKIFNwZWVjaFN5bnRoZXNpc0V2ZW50IGNvbmRpdGlvbmFsPVNQRUVDSF9T
WU5USEVTSVMKIFdlYkdMQ29udGV4dEV2ZW50IGNvbmRpdGlvbmFsPVdFQkdMCiBTdG9yYWdlRXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDMwMTcxMDA0
NGZmMTNhMTRjMDIyOGRhMzg5MDJkM2U3ZDMzNzdjMTIuLmE5ZGE5NDUyOGYxYjQwZmNiZGU4OWZh
MGM1NGUyZWRmMTk4OTg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbgpAQCAtNDQsNiArNDQsNyBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgY29uZGl0aW9u
YWw9U0VSVklDRV9XT1JLRVIKIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gY29uZGl0aW9uYWw9
U0VSVklDRV9XT1JLRVIKIFNvdXJjZUJ1ZmZlciBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFNv
dXJjZUJ1ZmZlckxpc3QgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCitTcGVlY2hSZWNvZ25pdGlv
bgogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMK
IFRleHRUcmFjayBjb25kaXRpb25hbD1WSURFTwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJ
REVPCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBlYmE1ZGE4MDFhMjdmZjk5YjA2NzcxMDM1MWVi
MjQ2OGZhNjk0MDBiLi43ZWM1MDQ2NDUzNzM1YzI1MjIzMmQyNzE1ODQ0ZTg0ODdhN2MyNTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTI4OSw2ICsyODksNyBAQAogI2RlZmluZSBXZWJLaXRN
ZWRpYVJlY29yZGVyRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZWRpYVJlY29yZGVyRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVz
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0Q29udGFjdFBpY2tlckFQSUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdFNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTcGVlY2hSZWNvZ25pdGlv
bkVuYWJsZWQiCiAKIC8vIFRoZSBwcmVmZXJlbmNlIGtleXMgYmVsb3cgdGhpcyBwb2ludCBhcmUg
ZGVwcmVjYXRlZCBhbmQgaGF2ZSBubyBlZmZlY3QuIFRoZXkgc2hvdWxkCiAvLyBiZSByZW1vdmVk
IHdoZW4gaXQgaXMgY29uc2lkZXJlZCBzYWZlIHRvIGRvIHNvLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMmE3ZThlNGI3ZTQ1
NDIxYzYwZTY1NjY0N2JjMzNhZjhiNjcyZTdlOC4uYTEwODM4Y2U5MWZiNTY2NmU5MzgxNmFlZTA1
ZTAyYzNiMGJkMDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMzc1LDYgKzMzNzUsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkUHJlZmVy
ZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpc3BlZWNoUmVjb2duaXRpb25FbmFibGVkCit7CisgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZU9ic29sZXRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKaW5kZXggOWJjMTBjYTcyNTEwMzU3YjdkZjZkYzVmYTE2NGY4YTc4MDk4YjAwOS4u
NjY3Y2M3NzE1Mzk2OWU5NTc0OTc4NzUwOGZkOTE5ZjQ4ZGY5MjNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC0zNDgsNiArMzQ4LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hl
TW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhUmVjb3JkZXJFbmFibGVkOikgQk9PTCBfbWVkaWFS
ZWNvcmRlckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NJbmRpdmlkdWFs
VHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBj
b250YWN0UGlja2VyQVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNwZWVj
aFJlY29nbml0aW9uRW5hYmxlZDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAo
V2ViUHJpdmF0ZURlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggODgyZTNmZDkzNjlmY2U5N2FmMzM1NDQyOWVjZjY3YmQ4NjA0MjVj
ZS4uZWJmMWE2NzIwNGYzNmQxYTlkM2M2YzQxZWQ0OTUzOTI1Y2JkMTRkNiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTEwLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAz
NTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1
cmVzKToKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgor
CiAyMDIwLTEwLTE5ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjI2ODExNSkgW0dUS10gQnVpbGQgZmFpbHVyZXMgd2l0aCBHQ0MgNyAoVWJ1
bnR1IDE4LjA0KSBhbmQgR0NDIDggKERlYmlhbiBCdXN0ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaAppbmRleCA4NzhiNjJhYTUxYjQxMWMwNzJmNTY3ODIxNDRjNzRlYzhiN2Y2ZDk2Li5j
MzgzMTg4M2RkMTBhMjc0NTIwZmM4OTM2OGI5MmQ3ZDA4NThlMGY1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmgKQEAgLTY0LDYgKzY0LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAg
ICBib29sIGVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5h
YmxlUmVzaXplT2JzZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFs
c2UgfTsKKyAgICBib29sIGVuYWJsZVNwZWVjaFJlY29nbml0aW9uIHsgdHJ1ZSB9OwogCiAgICAg
Ly8gVGVzdCBSdW5uZXIgU3BlY2lmaWMgRmVhdHVyZXMKICAgICBib29sIGR1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KaW5kZXggN2JhOTA4M2VmMTNlOTExMDI2OTU5ZmRjNTRmMDRmZTAxNTZiZDA0Ni4u
YjI4N2U5MDhkZTRmZDNiMWQ3YTRkZmRhOTY1YmJiZjlkZTE3YTBkYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODQxLDYgKzg0MSw3IEBAIHN0YXRp
YyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcykKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhl
aWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFi
bGVkOllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDpZ
RVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTk2Myw2ICs5NjQsOCBA
QCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKIAog
ICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJTUUxFbmFibGVkOllFU107CiAKKyAgICBbcHJlZmVyZW5j
ZXMgc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOllFU107CisKICAgICBbV2ViUHJlZmVyZW5j
ZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtXZWJQcmVmZXJlbmNlcyBfc2V0
Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tp
ZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZTli
OWFkMWJlMzMxYTkyOWYwMDE4MTA2NTcxMDc0OTMyM2E2YmJjLi5jZTk1NjRmY2FlZDQ1ZmQ4ZDQ3
ZmUyZDEyMmE2NDE5MTRlZWRlNWUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMjAg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZv
ciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEwLTE5ICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCBzcGVlY2ggdGVzdHMgZnJvbSBXUFQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDkyYTJkNjE1YzkyMzNjOTdhOWEyYzM2MjJi
OTQyNWNkODcwOWQ2ZmMuLjE2ODEwNmJhNDE4MDA3ZDgxYzUyMDkwMTM5YjE4NmM5YmVkMTdlMGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEw
LTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVi
cyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0xMC0xOSAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBvcnQgc3BlZWNoIHRlc3RzIGZyb20g
V1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFw
aS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDdkZDZh
OGE1NjAwMWUyNDc3N2ViYjVmMzlhNWNkNjRmNzBmYmQxZTMuLjBjOGI2ODQzMjFmZmU4MmRmODBi
N2ZiZTMzNmNlY2E2OTFhOGEwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3Mu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGJhc2lj
cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbgorRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBiYXNpY3MgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Jl
Y28uZ3JhbW1hcnMubGVuZ3RoJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3Bl
ZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggMWNmNDczYTkyYzBk
MDE5MjU5MDNmOGMxZDJhZGQwZTU3OTFlNGUwOS4uMWE4MWRhY2M3NWJiNzQ5MmI1MGQyZTA2OGYx
MTk3YzNjZmYwZjBmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1h
cGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMSw5MyArMTEsOTMgQEAgUEFT
UyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNz
aW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVz
IFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1l
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4
cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBncmFtbWFycyBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGxhbmcgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb250aW51b3VzIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW50ZXJpbVJl
c3VsdHMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBt
YXhBbHRlcm5hdGl2ZXMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBzdGFydCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBv
cGVyYXRpb24gc3RvcCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBv
cGVyYXRpb24gYWJvcnQoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9uYXVkaW9zdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIG9uc291bmRzdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNoc3RhcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVj
dGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
ZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRlbmQgYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1ZGlvZW5kIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZXN1bHQgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbm5vbWF0Y2ggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVycm9yIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zdGFydCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZW5kIGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZB
SUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIGFzc2VydF9lcXVh
bHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQg
bnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6
IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5l
dyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ3JhbW1hcnMiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibGFuZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBu
dWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjb250aW51b3VzIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImludGVyaW1SZXN1bHRzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1h
eEFsdGVybmF0aXZlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBl
Y3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBn
b3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVj
b2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGFydCgpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInN0b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBl
Y3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBn
b3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVj
b2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhYm9ydCgpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uYXVkaW9zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3Bl
ZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNvdW5kc3RhcnQiIHdp
dGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdo
ZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJl
bmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hzdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNw
ZWVjaGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBl
eGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2Jq
ZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRp
b24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0
aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNvdW5kZW5kIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcg
b2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9uYXVkaW9lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhw
ZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQg
Z290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJl
Y29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hS
ZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZXN1bHQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBV
bmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwg
YnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVl
Y2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZXJyb3IiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZh
bHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAib25zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3Bl
ZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmVuZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFs
dWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogYXR0cmli
dXRlIGVycm9yIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVzc2FnZSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQi
IG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1
bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zY3JpcHQg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQi
IGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3Qg
bmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKSBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIGlz
RmluYWwgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsZW5ndGggYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3Ii
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVj
dGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0SW5kZXggYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQi
IG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSByZXN1bHRzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkKK0ZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ3JhbW1h
cnMgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJncmFtbWFycyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFuZworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBjb250aW51b3VzCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIGludGVyaW1SZXN1bHRzCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIG1heEFsdGVybmF0aXZlcworUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdGFydCgpCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogb3BlcmF0aW9uIHN0b3AoKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBhYm9ydCgpCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9uYXVkaW9zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbnNvdW5kc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb25zcGVlY2hzdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnNvdW5kZW5kCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogYXR0cmlidXRlIG9uYXVkaW9lbmQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb25yZXN1bHQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgb25ub21hdGNoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIG9uZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBv
bmVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9m
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKQorRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBT
cGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ3JhbW1hcnMiIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdyYW1tYXJzIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsYW5nIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5l
dyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udGludW91cyIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImludGVyaW1SZXN1
bHRzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWF4QWx0
ZXJuYXRpdmVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c3RhcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0
b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFib3J0
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmF1ZGlv
c3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNv
dW5kc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
bnNwZWVjaHN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib25zcGVlY2hlbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvbnNvdW5kZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib25hdWRpb2VuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9ucmVzdWx0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAib25lcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9uc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbmVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3Bh
YmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIG1lc3NhZ2UKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3Bh
YmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFj
ZTogYXR0cmlidXRlIHRyYW5zY3JpcHQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoCitQQVNT
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogb3BlcmF0aW9uIGl0ZW0odW5zaWdu
ZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgaXNGaW5hbAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNT
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsZW5ndGgK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGl0
ZW0odW5zaWduZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdEluZGV4CitQQVNTIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0cwogRkFJTCBTcGVlY2hHcmFtbWFyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
R3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIG1pc3NpbmcKIEZBSUwg
U3BlZWNoR3JhbW1hciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlzc2luZwogRkFJTCBTcGVlY2hHcmFtbWFyIGlu
dGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
R3JhbW1hciIgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBiNzdlNjk0MjQxMDI0NDI0NjZmMGZmOGU3MDA4OGEwMmZlMzI2YzVhLi40YmM1NjVh
ZmZhMjZlNTJmMDljOWU1NWI3ZWQ2M2QwOGNjMWIzMWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3ZWJraXQub3JnL2IvMTgx
OTY0IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUtemVyby13aWR0aC1qb2lu
ZXIuaHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaSBbIFBhc3MgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411883</attachid>
            <date>2020-10-20 10:39:59 -0700</date>
            <delta_ts>2020-10-20 13:08:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201020103958.patch</filename>
            <type>text/plain</type>
            <size>110853</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU4ODdmMmI3MTZkNTA2Mjg1ZWIzYjBj
ZjNhYjFjZDQwNzQ3YjBlYjguLjcxMWMzMDVkOTViNGQ4NzNiNmY1MjVhZjc1Y2Y0YTRiNmI1N2Fm
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoK
KwogMjAyMC0xMC0xNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc2tlbGV0b24gaW1wbGVtZW50YXRpb24gb2YgTWVkaWEgU2Vzc2lvbiBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3NDVkMjZlNTY4NTgxMjhjNTZiY2VmYjU0ZTFlYmEyNjRkNjkxZDk1Li4wNzk3ZGYz
MzhiZDUxYTdlNTJhNWZhNTE2MzQwZWU2ODU5ODQ4MGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODEgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYmluZGluZ3MgY29kZSBhbmQgYSBmZWF0dXJlIGZsYWcgZm9yIFNwZWVjaFJl
Y29nbml0aW9uLgorICAgICAgICBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL3NwZWVjaC1h
cGkvI3NwZWVjaHJlY28tc2VjdGlvbi4KKworICAgICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIGFs
bCBpbnRlcmZhY2VzIG9mIFNwZWVjaFJlY29nbml0aW9uLCBleGNlcHQgU3BlZWNoR3JhbW1hciBh
bmQgU3BlZWNoR3JhbW1hckxpc3QuIFdlIGhhdmUgbm90CisgICAgICAgIGRlY2lkZWQgd2hhdCBn
cmFtbWFyIGZvcm1hdCBhbmQgdHlwZXMgd2UgYXJlIGdvaW5nIHRvIHN1cHBvcnQsIG9yIGhvdyB3
ZSBhcmUgZ29pbmcgdG8gc3VwcG9ydCBpdCBpZiBpdCBpcyBub3QKKyAgICAgICAgZGVmaW5lZCBp
biBleGlzaXRpbmcgc3BlZWNoIHJlY29nbml0aW9uIHNlcnZpY2UuIFNvIGxldCdzIGFkZCB0aG9z
ZSBpbnRlcmZhY2VzIGFmdGVyIHdlIGZpZ3VyZSB0aGlzIG91dC4gCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBSZWJhc2VsaW5lIGV4aXN0aW5zIHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c3RvcFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpsYW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRMYW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpjb250aW51b3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjpzZXRDb250aW51b3VzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uOjppbnRlcmltUmVzdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0SW50ZXJpbVJlc3VsdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb246Om1heEFsdGVybmF0aXZlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TWF4QWx0ZXJuYXRpdmVzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50OjpldmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGw6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQ6
OmV2ZW50SW50ZXJmYWNlIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdDo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6Oml0ZW0gY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmg6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Ojph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5h
bWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisKIDIwMjAtMTAt
MjAgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgU2Vs
ZWN0aW9uIHNwZWNpZmljIG1peGluIG9mIEdsb2JhbEV2ZW50SGFuZGxlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBlMzE3MTM5ODU4NzZmMjJhZjgyMDI0OGIwZDZiNWEyMmRjNmRj
NGY5Li5jMzQ5ZTVmOGQzNGE5NTgwYjhmMjVlYjI5ZWZjODkzNTI0NGI5MDk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hS
ZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToK
KyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc3BlZWNoUmVjb2duaXRpb25FbmFibGVkXSk6Cisg
ICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDIwLTEwLTIw
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBUd2VhayBXZWJQcmVm
ZXJlbmNlcyoueWFtbCAiZXhwb3NlZCIga2V5IHRvIG9ubHkgaW5kaWNhdGUgdGhhdCB0aGUga2V5
IHNob3VsZCBub3QgYmUgY2hhbmdlYWJsZSBieSB0aGUgZnJvbnRlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwKaW5kZXggMDMzMDdkOGRiOGQzMGEwYTZjNWVjMTQ0ZDcxMDQ5ZmE1MDVmNzk4
ZC4uNDVmYjBiNzk1ODQ1NTY3ZTIxNDlhZGUyN2QwOWEzYzFkODViYjI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwKQEAgLTc0MSw2ICs3NDEsMTggQEAgU2hvdWxkRGVmZXJBc3luY2hy
b25vdXNTY3JpcHRzVW50aWxBZnRlckRvY3VtZW50TG9hZE9yRmlyc3RQYWludDoKICAgICBXZWJD
b3JlOgogICAgICAgZGVmYXVsdDogdHJ1ZQogCitTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTcGVlY2hSZWNvZ25pdGlvbiBBUEki
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTcGVlY2hSZWNvZ25pdGlvbiBv
ZiBXZWJTcGVlY2ggQVBJIgorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAg
ICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAg
IFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiAjIEZJWE1FOiBUaGlzIGlzIGVuYWJs
ZWQgd2hlbiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSBpcyB0cnVlIGluIFdlYktpdDIu
IFBlcmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoYXQgZm9yIFdlYktpdExlZ2FjeSBh
cyB3ZWxsLgogU3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAppbmRleCBlMjIyOTg3NWI0NzdiMWM2YmFiYmM1ZmVkZDk3Y2E1NzI5
MWQzYzIzLi4wYjczOGQzOGRhOGM2OGQ1YWJmYmE3Mjg2ZGNiYzM0Y2JlN2U0N2I4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlLmgKQEAgLTQ0NSw2ICs0NDUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX1NN
T09USF9TQ1JPTExJTkcgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZ
TlRIRVNJUykKKyNkZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgMQorI2VuZGlmCisKICNp
ZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKICNkZWZpbmUgRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI5MGMzNjhhZGVk
YTc0NzM5NzdmMDk4YTg4M2IxNDU3MzBiNDZiNTcuLjk0MTQ3MjI2YzM1ZTEyNDVmZThkY2JlOTdm
M2E3ZDYyMmRkZjFjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NDgsNiArNDQ4LDE0IEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9yZW1vdGVwbGF5YmFj
ay9SZW1vdGVQbGF5YmFjay5pZGwKICAgICBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suaWRsCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbAorICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbAorICAgIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwKKwogICAgIE1vZHVsZXMvc3BlZWNo
L0RPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmlkbAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50Lmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5k
ZXggYzc0ZTUwZmNjNjIwNTBmOTQ1MDU3N2M5YzMzOTc3ZGZkM2I1Yjc3Yi4uZWYwYzE1Y2Q3MDE0
NzhmNjJhZmZlMWRhNmViOTgwNDRhNTQyZWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yODksNiArMjg5LDEzIEBAICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvcXVvdGEvV29ya2VyTmF2aWdhdG9yK1N0b3JhZ2VRdW90YS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1v
dGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1Jl
bW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5Q2FsbGJhY2suaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvdytTcGVlY2hTeW50aGVz
aXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5pZGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggMGUxNGY3NmNiODYyYjUxOTZmMTdlY2M0NWU3NGYxN2QzNmY3NjA4Yi4uZmU2YmU4YzQ0ZWI0
YjI2NTA0MjgzODcyYTU2YTllYmM4NGQ1YWFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTIxMzIsNiArMjEzMiwyMCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNl
QnVmZmVyLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U291cmNlQnVmZmVyTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbi5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NwZWVjaFN5bnRoZXNpcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyMjJhMWU1ZmU3NTk0ZDI4N2MzNjVkNDMwMWMz
ZWVjMjcwOTAwYTMwLi4xMjRjMmI4NTI0NjYzZDBlODBiOTNhMTA5NjE3YzAwYjlkZWZhMjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMxNiw2ICszMTYsMTMgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVm9pY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3N0cmVhbXMvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJjYjE3NGQxMTYyZDVjMTc2YjFkNDBlY2ZiMzZmZWIwNDYxNzBmN2QK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbi5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoU3BlZWNoUmVjb2duaXRpb24pOworCitSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNwZWVj
aFJlY29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7Cit9CisKK1NwZWVjaFJl
Y29nbml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBB
Y3RpdmVET01PYmplY3QoZG9jdW1lbnQpCit7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKK3sK
KyAgICBhYm9ydFJlY29nbml0aW9uKCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJl
Y29nbml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCit2
b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQoreworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKK3sKK30KKworY29uc3QgY2hhciog
U3BlZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiAiU3BlZWNoUmVjb2duaXRpb24iOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNjk0ZDBiMWRjNjE4YmMyNTMxZjY2ZmY4MGZiYjEwZWU0Y2RmMzhhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50
ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb24pOworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOwor
CisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYW5nOyB9CisgICAg
dm9pZCBzZXRMYW5nKGNvbnN0IFN0cmluZyYgbGFuZykgeyBtX2xhbmcgPSBsYW5nOyB9CisKKyAg
ICBib29sIGNvbnRpbnVvdXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbnVvdXM7IH0KKyAgICB2
b2lkIHNldENvbnRpbnVvdXMoYm9vbCBjb250aW51b3VzKSB7IG1fY29udGludW91cyA9IGNvbnRp
bnVvdXM7IH0KKworICAgIGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2lu
dGVyaW1SZXN1bHRzOyB9CisgICAgdm9pZCBzZXRJbnRlcmltUmVzdWx0cyhib29sIGludGVyaW1S
ZXN1bHRzKSB7IG1faW50ZXJpbVJlc3VsdHMgPSBpbnRlcmltUmVzdWx0czsgfQorCisgICAgdWlu
dDY0X3QgbWF4QWx0ZXJuYXRpdmVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXhBbHRlcm5hdGl2ZXM7
IH0KKyAgICB2b2lkIHNldE1heEFsdGVybmF0aXZlcyh1bnNpZ25lZCBtYXhBbHRlcm5hdGl2ZXMp
IHsgbV9tYXhBbHRlcm5hdGl2ZXMgPSBtYXhBbHRlcm5hdGl2ZXM7IH0KKworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHN0YXJ0UmVjb2duaXRpb24oKTsKKyAgICB2b2lkIHN0b3BSZWNvZ25pdGlvbigp
OworICAgIHZvaWQgYWJvcnRSZWNvZ25pdGlvbigpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDo6
cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIFNwZWVj
aFJlY29nbml0aW9uKERvY3VtZW50Jik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Q7CisgICAgdm9pZCBzdXNwZW5k
KFJlYXNvbkZvclN1c3BlbnNpb24pOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIFN0cmluZyBtX2xhbmc7CisgICAg
Ym9vbCBtX2NvbnRpbnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7
IGZhbHNlIH07CisgICAgdWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1MjMyMTYzNjBkYzZiODE1
OTZhMWZmOGZkMTlkM2U2MTRmMDQ1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBFbmFibGVkQnlTZXR0aW5n
PVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVl
Y2hSZWNvZ25pdGlvbiA6IEV2ZW50VGFyZ2V0IHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNv
bnN0cnVjdG9yKCk7CisKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmli
dXRlIGJvb2xlYW4gY29udGludW91czsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbnRlcmltUmVz
dWx0czsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBbHRlcm5hdGl2ZXM7CisKKyAg
ICBbTWF5VGhyb3dFeGNlcHRpb24sIEltcGxlbWVudGVkQXM9c3RhcnRSZWNvZ25pdGlvbl0gdW5k
ZWZpbmVkIHN0YXJ0KCk7CisgICAgW0ltcGxlbWVudGVkQXM9c3RvcFJlY29nbml0aW9uXSB1bmRl
ZmluZWQgc3RvcCgpOworICAgIFtJbXBsZW1lbnRlZEFzPWFib3J0UmVjb2duaXRpb25dIHVuZGVm
aW5lZCBhYm9ydCgpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvc3RhcnQ7
CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kc3RhcnQ7CisgICAgYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbnNwZWVjaHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25zcGVlY2hlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kZW5kOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb2VuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ucmVzdWx0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ub21hdGNoOwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVuZDsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNGRkZjZlOGVlOTM0NjZiNTVj
YmQxNmRlMTUzNjVkMWY1MGJlNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0cmlu
ZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0KSwg
Y29uZmlkZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRl
bmNlKQorICAgIDogbV90cmFuc2NyaXB0KHRyYW5zY3JpcHQpCisgICAgLCBtX2NvbmZpZGVuY2Uo
Y29uZmlkZW5jZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MWQ3NzYzNWY2M2E2NDdjZGJkMTQ3NzhkNDMzYjMwZGY0
NWVhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUp
OworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4g
Y3JlYXRlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKTsKKworICAgIFN0
cmluZyB0cmFuc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NyaXB0OyB9CisgICAgZG91
YmxlIGNvbmZpZGVuY2UoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZGVuY2U7IH0KKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRy
YW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKTsKKworICAgIFN0cmluZyBtX3RyYW5zY3JpcHQ7
CisgICAgZG91YmxlIG1fY29uZmlkZW5jZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VkNzdhZWRiYzI4OTNmODc5
MDU1MzFlNzY4MGQ0ZjEzMjkyN2Q5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
KyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2lu
ZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIHsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYW5zY3JpcHQ7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGZsb2F0IGNvbmZpZGVuY2U7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTU1MmVjNDgzOWQzN2QyYzJmZjllZjMzNTE2ZTU1MzQyMzIwYjNlMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUg
eworICAgIE5vU3BlZWNoLAorICAgIEFib3J0ZWQsCisgICAgQXVkaW9DYXB0dXJlLAorICAgIE5l
dHdvcmssCisgICAgTm90QWxsb3dlZCwKKyAgICBTZXJ2aWNlTm90QWxsb3dlZCwKKyAgICBCYWRH
cmFtbWFyLAorICAgIExhbmd1YWdlTm90U3VwcG9ydGVkCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M3MWI5NDI4NWQ2NGIx
YzE2N2Q3NWEyZTA1YjE2ZWNkOTZkZWQyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7
CisgICAgIm5vLXNwZWVjaCIsCisgICAgImFib3J0ZWQiLAorICAgICJhdWRpby1jYXB0dXJlIiwK
KyAgICAibmV0d29yayIsCisgICAgIm5vdC1hbGxvd2VkIiwKKyAgICAic2VydmljZS1ub3QtYWxs
b3dlZCIsCisgICAgImJhZC1ncmFtbWFyIiwKKyAgICAibGFuZ3VhZ2Utbm90LXN1cHBvcnRlZCIK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGJhNDVkYzI4ZDRmMmI0
MWM3Y2E5NTg4YTI3OGZjOTg3NmI3Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIgorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKKworUmVmPFNwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQo
dHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcm
IHR5cGUsIGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVu
dCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQuZXJyb3IpCisgICAg
LCBtX21lc3NhZ2UoaW5pdC5tZXNzYWdlKQoreworfQorCitTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBl
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNl
bGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVzc2FnZShtZXNzYWdl
KQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmV2
ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAzMWM2YTA3YWE5ZDljNTRkMmYwOGQ5YjU4ODk1
ODAyNDAxMGUzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgeworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KTsKK3B1
YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICB9Owor
CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOwor
ICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmKTsK
KworICAgIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yKCkgY29uc3QgeyByZXR1cm4g
bV9lcnJvcjsgfQorICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdl
OyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBtX2Vycm9y
OworICAgIFN0cmluZyBtX21lc3NhZ2U7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhY2VmZWUzYWZjNTlhM2U3NWRl
MmZjNTg5MjU5ODIzYTJkYzZjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25p
dGlvbiwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIERPTVN0cmluZyBtZXNzYWdlID0gIiI7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDA3NWFjZjZmMzMzNWViZWYxYzZlZjZh
YTgxMWNjYjMwZDA4MjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50LmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsKKwor
UmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNU
cnVzdGVkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXZl
bnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlw
ZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q+JiYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50KHR5cGUsIHJlc3VsdEluZGV4LCBXVEZNb3ZlKHJlc3VsdHMpKSk7Cit9CisKK1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6
IEV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5y
ZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhpbml0LnJlc3VsdHMpCit7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+JiYgcmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0
SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJ
bnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAor
eworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZmUxZWRiZGIw
YzhiOTgwYzliNWJmMWJhYjYzNzU2OGZmYmUyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FdmVudCk7Citw
dWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICB1aW50NjRfdCBy
ZXN1bHRJbmRleDsKKyAgICAgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4g
cmVzdWx0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQgPSBJc1Ry
dXN0ZWQ6Ok5vKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IGNyZWF0
ZShjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgdWludDY0X3QgcmVzdWx0SW5kZXgoKSBj
b25zdCB7IHJldHVybiBtX3Jlc3VsdEluZGV4OyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0KiByZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzLmdldCgpOyB9CisKK3By
aXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBB
dG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q+JiYpOworCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKKworICAgIHVpbnQ2NF90IG1fcmVzdWx0SW5kZXg7CisgICAgUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4gbV9yZXN1bHRzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTUzMWE4ZWZiYmYxZDk1
OWNkY2IxMjRkNjdlYjA5MGM2NWQzYWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0
aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyByZXN1bHRJbmRleDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdHM7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVjaFJl
Y29nbml0aW9uRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICB1bnNpZ25lZCBsb25nIHJlc3Vs
dEluZGV4ID0gMDsKKyAgICByZXF1aXJlZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgcmVz
dWx0czsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYxOTMyMzY3YmEzZGM4MDhi
MGY2MjVkZGFmN2Y3MzY0MGY1MmM1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZlcywgYm9vbCBpc0ZpbmFsKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFdURk1vdmUoYWx0ZXJuYXRp
dmVzKSwgaXNGaW5hbCkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4m
JiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKKyAgICA6IG1fYWx0ZXJuYXRpdmVzKFdURk1v
dmUoYWx0ZXJuYXRpdmVzKSkKKyAgICAsIG1faXNGaW5hbChpc0ZpbmFsKQoreworfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6aXRlbSh1
aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gKGluZGV4IDwgbV9hbHRlcm5hdGl2
ZXMuc2l6ZSgpKSA/IG1fYWx0ZXJuYXRpdmVzW2luZGV4XS5wdHIoKSA6IG51bGxwdHI7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5Y2Y5MGZk
MzhhZWMwMmQ5NzEyM2MyMDU5NjBmYzk0OWMxYmVmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+JiYsIGJvb2wgaXNGaW5hbCk7CisKKyAgICB1aW50NjRfdCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2FsdGVybmF0aXZlcy5zaXplKCk7IH0KKyAgICBib29sIGlzRmluYWwoKSBjb25zdCB7
IHJldHVybiBtX2lzRmluYWw7IH0KKyAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKiBp
dGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmLCBi
b29sIGlzRmluYWwpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlPj4gbV9hbHRlcm5hdGl2ZXM7CisgICAgYm9vbCBtX2lzRmluYWwgeyBmYWxzZSB9OworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZmVmZThmMjczNzFkNDJiZjM1Yjk0
NGQ3M2ZjNmVhZTliMjM0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBpc0ZpbmFsOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM4NTEwMzUzOTFmMTRkMGRhYTYwMGJhNTBiNGI2NGRjOWRiNThkY2EKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCk7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoKSk7Cit9
CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxp
c3QpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0KFdURk1vdmUobGlzdCkpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdDo6aXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gKGluZGV4IDwgbV9saXN0LnNpemUoKSkgPyBtX2xpc3RbaW5kZXhdLnB0cigpIDog
bnVsbHB0cjsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmFkZChTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCYgcmVzdWx0KQoreworICAgIG1fbGlzdC5hcHBlbmQobWFrZVJl
ZihyZXN1bHQpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYg
bGlzdCkKKyAgICA6IG1fbGlzdChXVEZNb3ZlKGxpc3QpKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkN2FlMDk0NWM5YTIy
NWM3NmY3ZTRkMzMwMzBkYjAxOTg3OThiYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApAQCAtMCww
ICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
PiYmKTsKKworICAgIGJvb2wgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsg
fQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBpdGVtKHVpbnQ2NF90IGluZGV4KSBjb25z
dDsKKworICAgIHZvaWQgYWRkKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Jik7CisKK3ByaXZhdGU6
CisgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkgPSBkZWZhdWx0OworICAgIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Pj4mJik7CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4gbV9saXN0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTA1NmU0MmI0NzNlMTAxNTIwYjM4NzZmNTgwY2MzZTFlYTUwZWQwNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQnlTZXR0aW5nPVNwZWVjaFJlY29nbml0aW9uLAorICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpdGVtKHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXROb2RlLmgKaW5kZXggOWM4ODc1MWUzYzY4MDY0MWRkM2QwYjQ2M2E1ODVm
ODU5YjA5YzI3My4uMWFlM2UzYTcyMTJmOTMwZTFhMmI1ZDZkMGIxNGRlMzc5OWJmMzQ1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2Rl
LmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZS5oIgorLy8gI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFs
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGQ3NjQ0MTVhODQyYjJlNmRmNDI3MzM2YTFhMTIzNTkzYjg4NWQxNjUuLjI4
MDNlNGJiZDBjYmE1NDg1YTI4ZGU4ZjFhODRmNjIyYjFlNDk4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xODQsNiArMTg0LDEyIEBAIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9FbnRlclBpY3R1cmVJ
blBpY3R1cmVFdmVudC5jcHAKIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVt
ZW50UGljdHVyZUluUGljdHVyZS5jcHAKIE1vZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJl
SW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFj
ay5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMv
c3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApA
QCAtMzUwMCw2ICszNTA2LDEzIEBAIEpTU2hhcmVEYXRhLmNwcAogSlNTbG90YWJsZS5jcHAKIEpT
U291cmNlQnVmZmVyLmNwcAogSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAorSlNTcGVlY2hSZWNvZ25p
dGlvbi5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK0pTU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvZGUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAK
K0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
Y3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIEpTU3BlZWNoU3ludGhlc2lz
LmNwcAogSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGE5YzA2MDY1MWNhOGE2NzY4ZjExN2FhZDEzYzRjZWQ3MDk1YmMzNmYuLmJk
YTUyZWFiNDNjZTJjMWUzODM0ZjVmY2RmMDVmZDhiMGUzNmNmODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3MzAsNiArMjcz
MCwxMyBAQAogCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0M0NCODAxMkYy
NUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLzsgfTsKIAkJOTM0NDJDOUUwRDJCMzM1
QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0MkM5RDBEMkIzMzVDMDAzMzhGRjkgLyog
SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJOTM0OTA3RTQxMjVCQkJDODAwN0Yy
M0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250
ZXh0Q0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEIxMjUzOTQzNDgw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovOyB9OworCQk5MzQ5NTBDRTI1Mzk0MzY1
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLzsgfTsKKwkJOTM0OTUwRDAyNTM5
NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLzsgfTsKKwkJOTM0OTUwRDEyNTM5
NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzMyNTM5NDM1MjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oICovOyB9OworCQk5MzQ5NTBEMjI1
Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLzsgfTsKKwkJOTM0OTUwRDQyNTM5NDM3QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLzsgfTsKKwkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovOyB9OwogCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4
RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNv
ZGUuaCAqLzsgfTsKIAkJOTM0RjcxM0EwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0RjcxMzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAw
MDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMjQ3LDYgKzExMjU0LDI2IEBACiAJCTkzNDQyQzlE
MEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRh
YmxlUm93c0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjQyNTM5NDM0OTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCNzI1Mzk0
MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQTI1Mzk0MzREMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5
NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkQyNTM5NDM0RjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzEy
NTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM1MjUz
OTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzNDk1MEM4MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzkyNTM5NDM1
NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRD
QzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRTb3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNEY3MTM3MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzODYsNiArMjU0
MTMsMjYgQEAKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVj
aFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1
IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLAorCQkJCTkzNDk1MEM3MjUzOTQzNTQw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8sCisJCQkJOTM0OTUwQjEyNTM5NDM0
ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8sCisJCQkJOTM0OTUwQUQyNTM5NDM0
NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLywKKwkJCQk5MzQ5NTBCNzI1Mzk0
MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJ
OTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aCAqLywKKwkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8sCisJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLywKKwkJCQk5MzQ5NTBDODI1Mzk0
MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLywKKwkJCQk5
MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmgg
Ki8sCisJCQkJOTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5pZGwgKi8sCisJCQkJOTM0OTUwQzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQuY3BwICovLAorCQkJCTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8sCisJCQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsICovLAorCQkJCTkzNDk1MEJGMjUzOTQzNTAw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgKi8sCisJCQkJOTM0OTUwQzEy
NTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi8sCisJCQkJOTM0
OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywK
KwkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcCAqLywKKwkJCQk5MzQ5NTBDNDI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmggKi8sCisJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzQxMTcsNiArMzQxNjQsMTMgQEAK
IAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFs
TmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRTI1Mzk0
MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBE
MjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2
QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
MTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
RXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBi
NjI3MTcxZjQ0MzcuLmRlZTc2Y2UyYmUzMzM4NTM1MDc4MzliNzAzYzU1Y2U2MzI1NDk4Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
QEAgLTIzOCw2ICsyMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSkgXAogICAgIG1hY3JvKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24pIFwKICAgICBtYWNybyhTaGFkb3dSb290KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRp
b24pIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKSBcCisgICAgbWFj
cm8oU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2du
aXRpb25FdmVudCkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KSBcCisgICAg
bWFjcm8oU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KSBcCiAgICAgbWFjcm8oU3RhdGljUmFu
Z2UpIFwKICAgICBtYWNybyhTdGVyZW9QYW5uZXJOb2RlKSBcCiAgICAgbWFjcm8oU3R5bGVQcm9w
ZXJ0eU1hcFJlYWRPbmx5KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDcyY2ZhYTVl
YjA3NTk2MGE3MzdmYmUyMzUxZTU0OWRkNDQ0YzdmNjMuLjdiNzgyYjgxMjNkMjEzOGZjZTIyNGY5
NDlhZGMwOTgyZTkwNzNhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC02Miw2ICs2
Miw4IEBAIFJUQ0RhdGFDaGFubmVsRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRDRFRNRlRv
bmVDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENQZWVyQ29ubmVjdGlvbkljZUV2
ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJUQ1RyYWNrRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JU
QworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50CitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CiBT
cGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENv
bnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJHTAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4
OTAyZDNlN2QzMzc3YzEyLi5hOWRhOTQ1MjhmMWI0MGZjYmRlODlmYTBjNTRlMmVkZjE5ODk4OGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0
LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VS
CiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBT
b3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNv
bmRpdGlvbmFsPU1FRElBX1NPVVJDRQorU3BlZWNoUmVjb2duaXRpb24KIFNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSBjb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBUZXh0VHJhY2sgY29uZGl0
aW9uYWw9VklERU8KIFRleHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFTwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKaW5kZXggZWJhNWRhODAxYTI3ZmY5OWIwNjc3MTAzNTFlYjI0NjhmYTY5NDAwYi4uN2Vj
NTA0NjQ1MzczNWMyNTIyMzJkMjcxNTg0NGU4NDg3YTdjMjUwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCkBAIC0yODksNiArMjg5LDcgQEAKICNkZWZpbmUgV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdENvbnRhY3RQaWNrZXJBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRh
Y3RQaWNrZXJBUElFbmFibGVkIgorI2RlZmluZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkIgogCiAvLyBU
aGUgcHJlZmVyZW5jZSBrZXlzIGJlbG93IHRoaXMgcG9pbnQgYXJlIGRlcHJlY2F0ZWQgYW5kIGhh
dmUgbm8gZWZmZWN0LiBUaGV5IHNob3VsZAogLy8gYmUgcmVtb3ZlZCB3aGVuIGl0IGlzIGNvbnNp
ZGVyZWQgc2FmZSB0byBkbyBzby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDJhN2U4ZTRiN2U0NTQyMWM2MGU2NTY2NDdiYzMz
YWY4YjY3MmU3ZTguLmExMDgzOGNlOTFmYjU2NjZlOTM4MTZhZWUwNWUwMmMzYjBiZDAxZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtMzM3NSw2ICszMzc1LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJ
RCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0lu
ZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCist
IChCT09MKXNwZWVjaFJlY29nbml0aW9uRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9v
bFZhbHVlRm9yS2V5OldlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXld
OworfQorCistICh2b2lkKXNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7
CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRTcGVlY2hSZWNvZ25p
dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVPYnNvbGV0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDli
YzEwY2E3MjUxMDM1N2I3ZGY2ZGM1ZmExNjRmOGE3ODA5OGIwMDkuLjY2N2NjNzcxNTM5NjllOTU3
NDk3ODc1MDhmZDkxOWY0OGRmOTIzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMzQ4LDYgKzM0OCw3
IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVy
bmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNZWRpYVJlY29yZGVyRW5hYmxlZDopIEJPT0wgX21lZGlhUmVjb3JkZXJFbmFibGVkOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRp
ZXNFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGFjdFBpY2tlckFQSUVu
YWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzcGVlY2hSZWNvZ25pdGlvbkVuYWJs
ZWQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVEZXByZWNh
dGVkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGQ1MDA3MzhiOWFhN2U1NTU0MmIzMmY2NzBlZDU1NDc3MmQxZWQyZTYuLmUzNTcwYmY1NzBjODQ3
MjJmMDllZDdkNjdmOTIwOTY0NmEyY2EwZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMC0yMCAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVj
aFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisKIDIwMjAtMTAt
MjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAg
VGVzdE9wdGlvbnNHZW5lcmF0ZWRLZXlzLmg6MzA6NTI6IHdhcm5pbmc6IGJhY2tzbGFzaC1uZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCA4Nzhi
NjJhYTUxYjQxMWMwNzJmNTY3ODIxNDRjNzRlYzhiN2Y2ZDk2Li5jMzgzMTg4M2RkMTBhMjc0NTIw
ZmM4OTM2OGI5MmQ3ZDA4NThlMGY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAg
LTY0LDYgKzY0LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZVJlcXVl
c3RJZGxlQ2FsbGJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlUmVzaXplT2JzZXJ2ZXIg
eyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViR1BVIHsgZmFsc2UgfTsKKyAgICBib29sIGVu
YWJsZVNwZWVjaFJlY29nbml0aW9uIHsgdHJ1ZSB9OwogCiAgICAgLy8gVGVzdCBSdW5uZXIgU3Bl
Y2lmaWMgRmVhdHVyZXMKICAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggYTZh
YWI3OTA1ODk3NGVjY2VjMDU3YTY4MjU3YTAzODk3MjQ3NzNiOS4uMmQ4Yzg0MGU4MWNmYzEyMWM5
MDMxZGY4MmZmZDhmOWNiYWM3MzAyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQpAQCAtODQyLDYgKzg0Miw3IEBAIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVy
aW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBbcHJlZmVy
ZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNd
OwogICAgIFtwcmVmZXJlbmNlcyBzZXRBdWRpb1dvcmtsZXRFbmFibGVkOllFU107CisgICAgW3By
ZWZlcmVuY2VzIHNldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDpZRVNdOwogCiAgICAgZm9yIChX
ZWJGZWF0dXJlKiBmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVy
ZXNdKSB7CiAgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbDpAIk1lZGlhU2Vzc2lvbkVu
YWJsZWQiXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2YTY1ZWQyZDBhNGEwODAzNmY0OGI4NzA2MDUxYTA2YzU3NzljMWM4
Li4xMjExNDBkMGUwOGExNmJjNmJiZmEzZGU4N2FlOGI3MWQ4ZWQ3MjcwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEwLTIw
ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFNlbGVj
dGlvbiBzcGVjaWZpYyBtaXhpbiBvZiBHbG9iYWxFdmVudEhhbmRsZXJzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCAxYzU2YzZmZDE5YTZmOWJhMzMxYzljODI3ZTA3YjE5NTY2MWFh
ZDk0Li43OWZhNGViNDMyNmE4OTcwMGQ3Njg1ZDQ1ODQwNmMxNzYxNGIxMjc3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0yMCAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVj
aFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndp
bmRvdy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA8Zm9yZ2l2aW5nLXNlbGVjdG9yLWxpc3Q+
IGZvciA6aXMvOndoZXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDdkZDZhOGE1NjAwMWUyNDc3N2ViYjVmMzlhNWNkNjRmNzBmYmQxZTMuLjBjOGI2ODQz
MjFmZmU4MmRmODBiN2ZiZTMzNmNlY2E2OTFhOGEwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25p
dGlvbi1iYXNpY3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNp
Y3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIGJhc2ljcyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbgorRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBiYXNpY3MgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ3JlY28uZ3JhbW1hcnMubGVuZ3RoJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mu
d2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXgg
MWNmNDczYTkyYzBkMDE5MjU5MDNmOGMxZDJhZGQwZTU3OTFlNGUwOS4uMWE4MWRhY2M3NWJiNzQ5
MmI1MGQyZTA2OGYxMTk3YzNjZmYwZjBmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMSw5MyAr
MTEsOTMgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZy
YW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
IG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBn
cmFtbWFycyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IGxhbmcgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBj
b250aW51b3VzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgaW50ZXJpbVJlc3VsdHMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBtYXhBbHRlcm5hdGl2ZXMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBzdGFydCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gYWJvcnQoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9zdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRzdGFydCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
ZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNoc3RhcnQgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRlbmQg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1ZGlv
ZW5kIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24i
IG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25y
ZXN1bHQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBv
bm5vbWF0Y2ggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvbmVycm9yIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgb25zdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIG9uZW5kIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gbXVzdCBiZSBwcmltYXJ5IGlu
dGVyZmFjZSBvZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNv
Z25pdGlvbiIKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
IGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmpl
Y3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Z3JhbW1hcnMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0
aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25p
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGFuZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
b250aW51b3VzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVk
IGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25p
dGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImludGVyaW1SZXN1bHRzIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm1heEFsdGVybmF0aXZlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
bmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGFydCgpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInN0b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
bmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhYm9ydCgpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm9uYXVkaW9zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNv
dW5kc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9i
amVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0
aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25p
dGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hzdGFydCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0
aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbnNwZWVjaGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczog
VW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxs
IGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3Bl
ZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNvdW5kZW5kIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVu
IGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uYXVkaW9lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9l
cXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZXN1bHQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9u
IHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJ
TCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3Nl
cnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4
cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9uZXJy
b3IiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmVu
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRp
b24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJS
ZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1G
QUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIg
ZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIGVycm9yIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQg
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVzc2FnZSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogYXR0cmlidXRl
IHRyYW5zY3JpcHQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVy
ZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTog
YXR0cmlidXRlIGlzRmluYWwgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBu
YW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBl
eHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1G
QUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsZW5n
dGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVu
dCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3Qg
bmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0
SW5kZXggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSByZXN1bHRzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkKK0ZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgZ3JhbW1hcnMgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJncmFtbWFycyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFuZworUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb250aW51b3VzCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGludGVyaW1SZXN1bHRzCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG1heEFsdGVybmF0aXZlcworUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdGFydCgpCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3AoKQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhYm9ydCgpCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNvdW5kc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zcGVlY2hzdGFydAorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZAorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNvdW5kZW5kCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9lbmQKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZXN1bHQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25ub21hdGNoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgb25zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbmVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBtdXN0IGJlIHByaW1hcnkg
aW50ZXJmYWNlIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpCitQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKQorRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRl
cmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZ3Jh
bW1hcnMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImdy
YW1tYXJzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJsYW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y29udGludW91cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImludGVyaW1SZXN1bHRzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAibWF4QWx0ZXJuYXRpdmVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAic3RhcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInN0b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFib3J0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvbmF1ZGlvc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbnNvdW5kc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbnNwZWVjaHN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hlbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbnNvdW5kZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25hdWRpb2VuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm9ucmVzdWx0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25lcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbmVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG1lc3NhZ2UKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZh
Y2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zY3JpcHQKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNl
IG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlIG9i
amVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJv
cGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogb3BlcmF0aW9u
IGl0ZW0odW5zaWduZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgaXNGaW5hbAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZQor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTog
b3BlcmF0aW9uIGl0ZW0odW5zaWduZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVu
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BB
U1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3Bl
ZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdEluZGV4CitQQVNTIFNwZWVj
aFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0cwogRkFJTCBTcGVl
Y2hHcmFtbWFyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoR3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIG1p
c3NpbmcKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hHcmFt
bWFyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlzc2luZwogRkFJTCBTcGVl
Y2hHcmFtbWFyIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBiNzdlNjk0MjQxMDI0NDI0NjZmMGZmOGU3MDA4OGEwMmZlMzI2
YzVhLi40YmM1NjVhZmZhMjZlNTJmMDljOWU1NWI3ZWQ2M2QwOGNjMWIzMWEyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3ZWJr
aXQub3JnL2IvMTgxOTY0IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUtemVy
by13aWR0aC1qb2luZXIuaHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaSBbIFBhc3MgXQorCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJl
Y3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>
<flag name="commit-queue"
          id="428234"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411900</attachid>
            <date>2020-10-20 12:51:47 -0700</date>
            <delta_ts>2020-10-20 13:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201020125146.patch</filename>
            <type>text/plain</type>
            <size>109813</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU4ODdmMmI3MTZkNTA2Mjg1ZWIzYjBj
ZjNhYjFjZDQwNzQ3YjBlYjguLjNhNDU2ZDdjNjMyNzJjNDg1OGVlZGM0YzEyNzNlNjFkYjk5ZDdj
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZ
b3Vlbm4gRmFibGV0LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgor
CiAyMDIwLTEwLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBza2VsZXRvbiBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYSBTZXNzaW9uIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDc0NWQyNmU1Njg1ODEyOGM1NmJjZWZiNTRlMWViYTI2NGQ2OTFkOTUuLmEwNTRkZWYw
MmU1MDM5YTk3N2JjNTY3ZDllMDAyNzY1NzIyNmE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4
MCBAQAorMjAyMC0xMC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgQWRkIGJpbmRpbmdzIGNvZGUgYW5kIGEgZmVhdHVyZSBmbGFnIGZvciBTcGVlY2hSZWNv
Z25pdGlvbi4KKyAgICAgICAgU3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gtYXBp
LyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbmNsdWRlcyBhbGwg
aW50ZXJmYWNlcyBvZiBTcGVlY2hSZWNvZ25pdGlvbiwgZXhjZXB0IFNwZWVjaEdyYW1tYXIgYW5k
IFNwZWVjaEdyYW1tYXJMaXN0LiBXZSBoYXZlIG5vdAorICAgICAgICBkZWNpZGVkIHdoYXQgZ3Jh
bW1hciBmb3JtYXQgYW5kIHR5cGVzIHdlIGFyZSBnb2luZyB0byBzdXBwb3J0LCBvciBob3cgd2Ug
YXJlIGdvaW5nIHRvIHN1cHBvcnQgaXQgaWYgaXQgaXMgbm90CisgICAgICAgIGRlZmluZWQgaW4g
ZXhpc2l0aW5nIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2aWNlLiBTbyBsZXQncyBhZGQgdGhvc2Ug
aW50ZXJmYWNlcyBhZnRlciB3ZSBmaWd1cmUgdGhpcyBvdXQuIAorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gUmViYXNlbGluZSBleGlzdGlucyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bGFuZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TGFuZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6Y29udGludW91cyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0Q29udGludW91cyk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6aW50ZXJpbVJlc3VsdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OnNldEludGVyaW1SZXN1bHRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjptYXhBbHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldE1heEFsdGVybmF0aXZlcyk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2du
aXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Ojpl
dmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAy
MDIwLTEwLTIwICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW50cm9k
dWNlIFNlbGVjdGlvbiBzcGVjaWZpYyBtaXhpbiBvZiBHbG9iYWxFdmVudEhhbmRsZXJzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZTMxNzEzOTg1ODc2ZjIyYWY4MjAyNDhiMGQ2YjVh
MjJkYzZkYzRmOS4uZGJhN2QzNDcxOTQ1MDFlYTYwYTRhYWRhNDQ3NDIxYTM1NTFkMmZiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTIwICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3Ig
U3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3NwZWVjaFJlY29nbml0aW9uRW5hYmxl
ZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc2V0U3BlZWNoUmVjb2duaXRpb25FbmFi
bGVkOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisKIDIw
MjAtMTAtMjAgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFR3ZWFr
IFdlYlByZWZlcmVuY2VzKi55YW1sICJleHBvc2VkIiBrZXkgdG8gb25seSBpbmRpY2F0ZSB0aGF0
IHRoZSBrZXkgc2hvdWxkIG5vdCBiZSBjaGFuZ2VhYmxlIGJ5IHRoZSBmcm9udGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJp
bWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAppbmRleCAwMzMwN2Q4ZGI4ZDMwYTBhNmM1ZWMxNDRkNzEwNDlm
YTUwNWY3OThkLi40NWZiMGI3OTU4NDU1NjdlMjE0OWFkZTI3ZDA5YTNjMWQ4NWJiMjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBl
cmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNzQxLDYgKzc0MSwxOCBAQCBTaG91bGREZWZl
ckFzeW5jaHJvbm91c1NjcmlwdHNVbnRpbEFmdGVyRG9jdW1lbnRMb2FkT3JGaXJzdFBhaW50Ogog
ICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiB0cnVlCiAKK1NwZWVjaFJlY29nbml0aW9uRW5h
YmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlNwZWVjaFJlY29nbml0
aW9uIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFNwZWVjaFJlY29n
bml0aW9uIG9mIFdlYlNwZWVjaCBBUEkiCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMg
aXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIGlzIHRydWUgaW4g
V2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhhdCBmb3IgV2ViS2l0
TGVnYWN5IGFzIHdlbGwuCiBTcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJv
b2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IGUyMjI5ODc1YjQ3N2IxYzZiYWJiYzVmZWRk
OTdjYTU3MjkxZDNjMjMuLjBiNzM4ZDM4ZGE4YzY4ZDVhYmZiYTcyODZkY2JjMzRjYmU3ZTQ3Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtNDQ1LDYgKzQ0NSwxMCBAQAogI2RlZmluZSBF
TkFCTEVfU01PT1RIX1NDUk9MTElORyAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9T
UEVFQ0hfU1lOVEhFU0lTKQorI2RlZmluZSBFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUyAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKQogI2RlZmluZSBFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUyAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjkw
YzM2OGFkZWRhNzQ3Mzk3N2YwOThhODgzYjE0NTczMGI0NmI1Ny4uOTQxNDcyMjZjMzVlMTI0NWZl
OGRjYmU5N2YzYTdkNjIyZGRmMWMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ0OCw2ICs0
NDgsMTQgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3JlbW90
ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmlkbAogICAgIE1vZHVsZXMvcmVtb3RlcGxheWJhY2sv
UmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKIAorICAgIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckNvZGUuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmlkbAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRs
CisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisgICAgTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbAorCiAgICAgTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuaWRsCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBjNzRlNTBmY2M2MjA1MGY5NDUwNTc3YzljMzM5NzdkZmQzYjViNzdiLi5lZjBj
MTVjZDcwMTQ3OGY2MmFmZmUxZGE2ZWI5ODA0NGE1NDJlYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI4OSw2ICsyODksMTMgQEAg
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9xdW90YS9Xb3JrZXJOYXZpZ2F0b3IrU3RvcmFnZVF1b3Rh
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9IVE1MTWVkaWFFbGVt
ZW50K1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50Lmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93K1NwZWVj
aFN5bnRoZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2
ZW50LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCAwZTE0Zjc2Y2I4NjJiNTE5NmYxN2VjYzQ1ZTc0ZjE3ZDM2Zjc2MDhiLi5mZTZi
ZThjNDRlYjRiMjY1MDQyODM4NzJhNTZhOWViYzg0ZDVhYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMjEzMiw2ICsyMTMyLDIw
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNl
QnVmZmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTb3VyY2VCdWZmZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0
aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0
aW9uRXJyb3JDb2RlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5j
cHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTU3BlZWNoU3ludGhlc2lzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXNFdmVudC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDIyMmExZTVmZTc1OTRkMjg3YzM2
NWQ0MzAxYzNlZWMyNzA5MDBhMzAuLjEyNGMyYjg1MjQ2NjNkMGU4MGI5M2ExMDk2MTdjMDBiOWRl
ZmEyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzE2LDYgKzMxNiwxMyBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXNFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVy
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiMTc0ZDExNjJkNWMxNzZiMWQ0MGVjZmIzNmZlYjA0
NjE3MGY3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbik7CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlv
bj4gU3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb24oZG9jdW1lbnQpKTsKK30KKwor
U3BlZWNoUmVjb2duaXRpb246OlNwZWVjaFJlY29nbml0aW9uKERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK3sKKyAgICBzdXNwZW5kSWZOZWVkZWQo
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKQoreworICAgIGFib3J0UmVjb2duaXRpb24oKTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4g
U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24oKQoreworICAgIHJldHVybiB7IH07
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbigpCit7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmFib3J0UmVjb2duaXRpb24oKQoreworfQorCitjb25z
dCBjaGFyKiBTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICJTcGVlY2hSZWNvZ25pdGlvbiI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlZTY3YzFiNTI3ZjM2ZDI4YTQwMmUwYjRhNDM1NmU1ZWFlOWRj
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbi5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb24gOiBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlv
bj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhICB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbik7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxT
cGVlY2hSZWNvZ25pdGlvbj4gY3JlYXRlKERvY3VtZW50Jik7CisKKyAgICBjb25zdCBTdHJpbmcm
IGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldExhbmcoU3RyaW5n
JiYgbGFuZykgeyBtX2xhbmcgPSBXVEZNb3ZlKGxhbmcpOyB9CisKKyAgICBib29sIGNvbnRpbnVv
dXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRpbnVvdXM7IH0KKyAgICB2b2lkIHNldENvbnRpbnVv
dXMoYm9vbCBjb250aW51b3VzKSB7IG1fY29udGludW91cyA9IGNvbnRpbnVvdXM7IH0KKworICAg
IGJvb2wgaW50ZXJpbVJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2ludGVyaW1SZXN1bHRzOyB9
CisgICAgdm9pZCBzZXRJbnRlcmltUmVzdWx0cyhib29sIGludGVyaW1SZXN1bHRzKSB7IG1faW50
ZXJpbVJlc3VsdHMgPSBpbnRlcmltUmVzdWx0czsgfQorCisgICAgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXhBbHRlcm5hdGl2ZXM7IH0KKyAgICB2b2lkIHNl
dE1heEFsdGVybmF0aXZlcyh1bnNpZ25lZCBtYXhBbHRlcm5hdGl2ZXMpIHsgbV9tYXhBbHRlcm5h
dGl2ZXMgPSBtYXhBbHRlcm5hdGl2ZXM7IH0KKworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0YXJ0
UmVjb2duaXRpb24oKTsKKyAgICB2b2lkIHN0b3BSZWNvZ25pdGlvbigpOworICAgIHZvaWQgYWJv
cnRSZWNvZ25pdGlvbigpOworCisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5n
IFJlZkNvdW50ZWQ6OmRlcmVmOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNwZWVjaFJlY29n
bml0aW9uKERvY3VtZW50Jik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Q7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24pOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNwZWVjaFJlY29nbml0aW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIFN0cmluZyBtX2xhbmc7CisgICAgYm9vbCBt
X2NvbnRpbnVvdXMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pbnRlcmltUmVzdWx0cyB7IGZhbHNl
IH07CisgICAgdWludDY0X3QgbV9tYXhBbHRlcm5hdGl2ZXMgeyAxIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1MjMyMTYzNjBkYzZiODE1OTZhMWZm
OGZkMTlkM2U2MTRmMDQ1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbApAQCAtMCwwICsxLDUzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNwZWVj
aFJlY29nbml0aW9uLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVlY2hSZWNv
Z25pdGlvbiA6IEV2ZW50VGFyZ2V0IHsKKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNvbnN0cnVj
dG9yKCk7CisKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CisgICAgYXR0cmlidXRlIGJv
b2xlYW4gY29udGludW91czsKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbnRlcmltUmVzdWx0czsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBbHRlcm5hdGl2ZXM7CisKKyAgICBbTWF5
VGhyb3dFeGNlcHRpb24sIEltcGxlbWVudGVkQXM9c3RhcnRSZWNvZ25pdGlvbl0gdW5kZWZpbmVk
IHN0YXJ0KCk7CisgICAgW0ltcGxlbWVudGVkQXM9c3RvcFJlY29nbml0aW9uXSB1bmRlZmluZWQg
c3RvcCgpOworICAgIFtJbXBsZW1lbnRlZEFzPWFib3J0UmVjb2duaXRpb25dIHVuZGVmaW5lZCBh
Ym9ydCgpOworCisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmF1ZGlvc3RhcnQ7CisgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnNwZWVjaHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zcGVl
Y2hlbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNvdW5kZW5kOworICAgIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb2VuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ucmVzdWx0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25ub21hdGNoOworICAgIGF0
dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lcnJvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9uc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmVuZDsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczYzRkNWQ0MTY3ZDBlYjIyOGYwMTNjNTZj
M2UzNWRhOWY2NjhlZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcApAQCAtMCwwICsxLDQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZT4gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKFN0cmluZyYmIHRy
YW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoV1RGTW92ZSh0cmFuc2NyaXB0KSwgY29uZmlk
ZW5jZSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKQor
ICAgIDogbV90cmFuc2NyaXB0KFdURk1vdmUodHJhbnNjcmlwdCkpCisgICAgLCBtX2NvbmZpZGVu
Y2UoY29uZmlkZW5jZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MmI5ZGY4ZDcyNjMwZDU5YzljOTEyMmZhOWQ4OTcw
M2U1ZjU4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4gY3JlYXRlKFN0cmluZyYmIHRyYW5zY3JpcHQsIGRvdWJsZSBjb25maWRlbmNlKTsKKworICAg
IGNvbnN0IFN0cmluZyYgdHJhbnNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNjcmlwdDsg
fQorICAgIGRvdWJsZSBjb25maWRlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWRlbmNlOyB9
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZShTdHJpbmcmJiB0
cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBTdHJpbmcgbV90cmFuc2NyaXB0
OworICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZDc3YWVkYmMyODkzZjg3
OTA1NTMxZTc2ODBkNGYxMzI5MjdkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBFeHBvc2VkPVdp
bmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0cmFuc2NyaXB0OworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBmbG9hdCBjb25maWRlbmNlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1NTJlYzQ4MzlkMzdkMmMyZmY5ZWYzMzUxNmU1NTM0MjMyMGIzZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2Rl
IHsKKyAgICBOb1NwZWVjaCwKKyAgICBBYm9ydGVkLAorICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICBO
ZXR3b3JrLAorICAgIE5vdEFsbG93ZWQsCisgICAgU2VydmljZU5vdEFsbG93ZWQsCisgICAgQmFk
R3JhbW1hciwKKyAgICBMYW5ndWFnZU5vdFN1cHBvcnRlZAorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckNvZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjNzFiOTQyODVkNjRi
MWMxNjdkNzVhMmUwNWIxNmVjZDk2ZGVkMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKQEAgLTAs
MCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUg
eworICAgICJuby1zcGVlY2giLAorICAgICJhYm9ydGVkIiwKKyAgICAiYXVkaW8tY2FwdHVyZSIs
CisgICAgIm5ldHdvcmsiLAorICAgICJub3QtYWxsb3dlZCIsCisgICAgInNlcnZpY2Utbm90LWFs
bG93ZWQiLAorICAgICJiYWQtZ3JhbW1hciIsCisgICAgImxhbmd1YWdlLW5vdC1zdXBwb3J0ZWQi
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUwMTAyNGY2MzcxMTQ2
M2VjMTczNDIwNjQ5ZjgxMzU3MWNkYmJjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKQEAgLTAs
MCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7CisKK1JlZjxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIEluaXQmJiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCh0eXBl
LCBXVEZNb3ZlKGluaXQpLCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudD4gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpjcmVhdGUoY29uc3QgQXRv
bVN0cmluZyYgdHlwZSwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQodHlwZSwgZXJyb3IsIG1lc3NhZ2UpKTsKK30KKworU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgSW5pdCYmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFdmVu
dCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2Vycm9yKGluaXQuZXJyb3IpCisgICAg
LCBtX21lc3NhZ2UoV1RGTW92ZShpbml0Lm1lc3NhZ2UpKQoreworfQorCitTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudChjb25zdCBBdG9tU3Ry
aW5nJiB0eXBlLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvciwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9lcnJvcihlcnJvcikKKyAgICAsIG1fbWVzc2Fn
ZShtZXNzYWdlKQoreworfQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQ6OmV2ZW50SW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKworfTsgLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRiYjg0NGVhM2Y4ZTUxMTA1Yzk1
ZDViZjk3NTBiMTU1OWM1MjJmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZl
bnQgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAgIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgICAgICBTdHJpbmcgbWVzc2FnZTsK
KyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgSW5pdCYmLCBJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5v
KTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3I7IH0KKyAgICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVy
biBtX21lc3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYsIEluaXQmJiwgSXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JDb2RlLCBjb25zdCBTdHJpbmcmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJm
YWNlKCkgY29uc3QgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBtX2Vy
cm9yOworICAgIFN0cmluZyBtX21lc3NhZ2U7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhY2VmZWUzYWZjNTlhM2U3
NWRlMmZjNTg5MjU5ODIzYTJkYzZjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsCkBAIC0wLDAg
KzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNv
Z25pdGlvbiwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50IDogRXZlbnQgeworICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7Cit9OworCitkaWN0aW9uYXJ5IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgeworICAgIHJlcXVpcmVkIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yOworICAgIERPTVN0cmluZyBtZXNzYWdlID0g
IiI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODQ2ZGFhNjJlNTgyMmRlMDE4ZGZi
OTkzYjAzZGU1OWNlMzM0YjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KTsK
KworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNy
ZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBJbml0JiYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
KHR5cGUsIFdURk1vdmUoaW5pdCksIGlzVHJ1c3RlZCkpOworfQorCitSZWY8U3BlZWNoUmVjb2du
aXRpb25FdmVudD4gU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiYmIHJlc3VsdHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNo
UmVjb2duaXRpb25FdmVudCh0eXBlLCByZXN1bHRJbmRleCwgV1RGTW92ZShyZXN1bHRzKSkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0
IEF0b21TdHJpbmcmIHR5cGUsIEluaXQmJiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAg
IDogRXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9yZXN1bHRJbmRleChpbml0
LnJlc3VsdEluZGV4KQorICAgICwgbV9yZXN1bHRzKFdURk1vdmUoaW5pdC5yZXN1bHRzKSkKK3sK
K30KKworU3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdD4mJiByZXN1bHRzKQorICAgIDogRXZlbnQodHlwZSwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKQorICAgICwgbV9yZXN1bHRJ
bmRleChyZXN1bHRJbmRleCkKKyAgICAsIG1fcmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHMpKQorewor
fQorCitFdmVudEludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpldmVudEludGVyZmFj
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJbnRlcmZhY2VU
eXBlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjcyZTg4NGM3OTBhM2E5NGFjMmE2YWRhZGU1NDNmM2JiZGNmOWFkOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdDsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBmaW5hbCA6IHB1
YmxpYyBFdmVudCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50KTsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV2ZW50SW5pdCB7CisgICAgICAg
IHVpbnQ2NF90IHJlc3VsdEluZGV4OworICAgICAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiByZXN1bHRzOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29n
bml0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgSW5pdCYmLCBJc1RydXN0ZWQg
PSBJc1RydXN0ZWQ6Ok5vKTsKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+JiYpOworCisgICAgdWludDY0X3QgcmVzdWx0SW5k
ZXgoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdEluZGV4OyB9CisgICAgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0KiByZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzLmdldCgpOyB9
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5n
JiwgSW5pdCYmLCBJc1RydXN0ZWQpOworICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0PiYmKTsKKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkg
Y29uc3QgZmluYWw7CisKKyAgICB1aW50NjRfdCBtX3Jlc3VsdEluZGV4OworICAgIFJlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IG1fcmVzdWx0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE1MzFhOGVmYmJmMWQ5NTlj
ZGNiMTI0ZDY3ZWIwOTBjNjVkM2FmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlv
biwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVu
dCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2du
aXRpb25FdmVudEluaXQgZXZlbnRJbml0RGljdCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgcmVzdWx0SW5kZXg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50SW5pdCA6IEV2ZW50SW5pdCB7CisgICAgdW5zaWduZWQgbG9uZyByZXN1bHRJ
bmRleCA9IDA7CisgICAgcmVxdWlyZWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IHJlc3Vs
dHM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2MTkzMjM2N2JhM2RjODA4YjBm
NjI1ZGRhZjdmNzM2NDBmNTJjNWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKQEAgLTAsMCArMSw1MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5oIgorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlPj4mJiBhbHRlcm5hdGl2ZXMsIGJvb2wgaXNGaW5hbCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdChXVEZNb3ZlKGFsdGVybmF0aXZl
cyksIGlzRmluYWwpKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYg
YWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwpCisgICAgOiBtX2FsdGVybmF0aXZlcyhXVEZNb3Zl
KGFsdGVybmF0aXZlcykpCisgICAgLCBtX2lzRmluYWwoaXNGaW5hbCkKK3sKK30KKworU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ6Oml0ZW0odWlu
dDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChpbmRleCA8IG1fYWx0ZXJuYXRpdmVz
LnNpemUoKSkgPyBtX2FsdGVybmF0aXZlc1tpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWNmOTBmZDM4
YWVjMDJkOTcxMjNjMjA1OTYwZmM5NDljMWJlZjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+
PiYmLCBib29sIGlzRmluYWwpOworCisgICAgdWludDY0X3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9hbHRlcm5hdGl2ZXMuc2l6ZSgpOyB9CisgICAgYm9vbCBpc0ZpbmFsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0ZpbmFsOyB9CisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSogaXRl
bSh1aW50NjRfdCBpbmRleCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9v
bCBpc0ZpbmFsKTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZT4+IG1fYWx0ZXJuYXRpdmVzOworICAgIGJvb2wgbV9pc0ZpbmFsIHsgZmFsc2UgfTsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2ZlZmU4ZjI3MzcxZDQyYmYzNWI5NDRk
NzNmYzZlYWU5YjIzNGY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVy
ZmFjZSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gaXNGaW5hbDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ODUxMDM1MzkxZjE0ZDBkYWE2MDBiYTUwYjRiNjRkYzlkYjU4ZGNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIgorCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OmNyZWF0ZSgpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0KCkpOworfQor
CitSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3Q6OmNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dChXVEZNb3ZlKGxpc3QpKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q6Oml0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIChpbmRleCA8IG1fbGlzdC5zaXplKCkpID8gbV9saXN0W2luZGV4XS5wdHIoKSA6IG51
bGxwdHI7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjphZGQoU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3QuYXBwZW5kKG1ha2VSZWYo
cmVzdWx0KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYmIGxp
c3QpCisgICAgOiBtX2xpc3QoV1RGTW92ZShsaXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTQ5YjUyOWZiMTk3ZGUx
ZWU4Nzc2ZTM0ZTM4ZTkxNmYzYWUxZjk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4geworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4m
Jik7CisKKyAgICBib29sIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0K
KyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBpbmRleCkgY29uc3Q7
CisKKyAgICB2b2lkIGFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOworCitwcml2YXRlOgor
ICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNp
dCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdD4+JiYpOworCisgICAgVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+
IG1fbGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEwNTZlNDJiNDczZTEwMTUyMGIzODc2ZjU4MGNjM2UxZWE1MGVk
MDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlvbiwKKyAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ3NjQ0MTVhODQyYjJl
NmRmNDI3MzM2YTFhMTIzNTkzYjg4NWQxNjUuLjI4MDNlNGJiZDBjYmE1NDg1YTI4ZGU4ZjFhODRm
NjIyYjFlNDk4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODQsNiArMTg0LDEyIEBAIE1vZHVsZXMv
cGljdHVyZWlucGljdHVyZS9FbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHAKIE1vZHVsZXMv
cGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKIE1v
ZHVsZXMvcGljdHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApAQCAtMzUwMCw2ICszNTA2LDEzIEBAIEpTU2hh
cmVEYXRhLmNwcAogSlNTbG90YWJsZS5jcHAKIEpTU291cmNlQnVmZmVyLmNwcAogSlNTb3VyY2VC
dWZmZXJMaXN0LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvbi5jcHAKK0pTU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCitKU1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5j
cHAKK0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5jcHAKIEpTU3BlZWNoU3ludGhlc2lzLmNwcAogSlNTcGVlY2hTeW50aGVzaXNFdmVu
dC5jcHAKIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE5YzA2MDY1MWNhOGE2
NzY4ZjExN2FhZDEzYzRjZWQ3MDk1YmMzNmYuLmJkYTUyZWFiNDNjZTJjMWUzODM0ZjVmY2RmMDVm
ZDhiMGUzNmNmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI3MzAsNiArMjczMCwxMyBAQAogCQk5MzQzQ0I4MjEyRjI1RTUx
MDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VU
RjguaCAqLzsgfTsKIAkJOTM0NDJDOUUwRDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3ND
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzQ0MkM5RDBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCAq
LzsgfTsKIAkJOTM0OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5MDdFMzEy
NUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5oICovOyB9OworCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCAqLzsgfTsKKwkJOTM0OTUwRDAyNTM5NDM2QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQ5NTBBRjI1Mzk0MzQ3MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJv
ckNvZGUuaCAqLzsgfTsKKwkJOTM0OTUwRDEyNTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5oICovOyB9OworCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQu
aCAqLzsgfTsKKwkJOTM0OTUwRDQyNTM5NDM3QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQ5NTBDMTI1Mzk0MzUxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCAqLzsg
fTsKKwkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
OTUwQzQyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICov
OyB9OwogCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Q0MxMDkwRURC
MjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLzsgfTsKIAkJOTM0RjcxM0EwRDVB
NkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxMzkwRDVBNkYxMDAwMDE4
RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAv
KiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEx
MjQ3LDYgKzExMjU0LDI2IEBACiAJCTkzNDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ0
MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3RjIz
QTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0
OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEFG
MjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQjgy
NTM5NDM0QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzQ5NTBCQTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEJDMjUzOTQz
NEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCRjI1Mzk0MzUwMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzQ5NTBDMDI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEMzMjUzOTQzNTIwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEM0MjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEM4MjUzOTQz
NTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzkyNTM5NDM1NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRDQzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2Ny
aXB0U291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRT
b3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM3MEQ1QTZF
RkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2
OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjUzODYsNiArMjU0MTMsMjYgQEAKIAkJCQlBQTJBNUFCQTE2QTQ4
NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEy
QTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8s
CiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5oICovLAorCQkJCTkzNDk1MEM3MjUzOTQzNTQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5jcHAgKi8sCisJCQkJOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmggKi8sCisJCQkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uLmlkbCAqLywKKwkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCisJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKKwkJCQk5MzQ5NTBCQjI1Mzk0MzRF
MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTM0
OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8s
CisJCQkJOTM0OTUwQjgyNTM5NDM0QzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JD
b2RlLmlkbCAqLywKKwkJCQk5MzQ5NTBDODI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmggKi8sCisJCQkJOTM0OTUwQkEyNTM5NDM0RDAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgKi8sCisJCQkJOTM0OTUw
QzAyNTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovLAorCQkJ
CTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi8s
CisJCQkJOTM0OTUwQjQyNTM5NDM0OTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQu
aWRsICovLAorCQkJCTkzNDk1MEJGMjUzOTQzNTAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdC5jcHAgKi8sCisJCQkJOTM0OTUwQzEyNTM5NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0LmggKi8sCisJCQkJOTM0OTUwQjkyNTM5NDM0RDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbCAqLywKKwkJCQk5MzQ5NTBCRDI1Mzk0MzRGMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk5MzQ5NTBDNDI1
Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8sCisJCQkJ
OTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5p
ZGwgKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5j
cHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5o
ICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRs
ICovLApAQCAtMzQxMTcsNiArMzQxNjQsMTMgQEAKIAkJCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUz
MDAgLyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAxQTI3QUUxMEM5QkZE
ODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyNkNE
RTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDAyNTM5NDM2QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzQ5NTBEMTI1Mzk0MzcwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ5NTBEMjI1Mzk0MzczMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDQyNTM5NDM3QzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5
MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyog
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4
NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4
IDk3MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLmRlZTc2Y2UyYmUzMzM4
NTM1MDc4MzliNzAzYzU1Y2U2MzI1NDk4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTIzOCw2ICsyMzgsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSkgXAogICAg
IG1hY3JvKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pIFwKICAgICBtYWNybyhTaGFkb3dSb290
KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb24pIFwKKyAgICBtYWNybyhTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlKSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25FdmVudCkgXAorICAgIG1hY3JvKFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0KSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0KSBcCiAgICAgbWFjcm8oU3RhdGljUmFuZ2UpIFwKICAgICBtYWNybyhTdGVyZW9QYW5u
ZXJOb2RlKSBcCiAgICAgbWFjcm8oU3R5bGVQcm9wZXJ0eU1hcFJlYWRPbmx5KSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmluCmluZGV4IDcyY2ZhYTVlYjA3NTk2MGE3MzdmYmUyMzUxZTU0OWRkNDQ0
YzdmNjMuLjdiNzgyYjgxMjNkMjEzOGZjZTIyNGY5NDlhZGMwOTgyZTkwNzNhZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmluCkBAIC02Miw2ICs2Miw4IEBAIFJUQ0RhdGFDaGFubmVsRXZlbnQg
Y29uZGl0aW9uYWw9V0VCX1JUQwogUlRDRFRNRlRvbmVDaGFuZ2VFdmVudCBjb25kaXRpb25hbD1X
RUJfUlRDCiBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50IGNvbmRpdGlvbmFsPVdFQl9SVEMKIFJU
Q1RyYWNrRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50CitTcGVlY2hSZWNvZ25pdGlvbkV2ZW50CiBTcGVlY2hTeW50aGVzaXNFdmVudCBjb25kaXRp
b25hbD1TUEVFQ0hfU1lOVEhFU0lTCiBXZWJHTENvbnRleHRFdmVudCBjb25kaXRpb25hbD1XRUJH
TAogU3RvcmFnZUV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpp
bmRleCAzMDE3MTAwNDRmZjEzYTE0YzAyMjhkYTM4OTAyZDNlN2QzMzc3YzEyLi5hOWRhOTQ1Mjhm
MWI0MGZjYmRlODlmYTBjNTRlMmVkZjE5ODk4OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldEZhY3RvcnkuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlIGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBTb3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVE
SUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQorU3Bl
ZWNoUmVjb2duaXRpb24KIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSBjb25kaXRpb25hbD1TUEVF
Q0hfU1lOVEhFU0lTCiBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU8KIFRleHRUcmFja0N1ZSBj
b25kaXRpb25hbD1WSURFTwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggZWJhNWRhODAxYTI3ZmY5
OWIwNjc3MTAzNTFlYjI0NjhmYTY5NDAwYi4uN2VjNTA0NjQ1MzczNWMyNTIyMzJkMjcxNTg0NGU4
NDg3YTdjMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yODksNiArMjg5LDcgQEAKICNk
ZWZpbmUgV2ViS2l0TWVkaWFSZWNvcmRlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVk
aWFSZWNvcmRlckVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Q
cm9wZXJ0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNm
b3JtUHJvcGVydGllc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENvbnRhY3RQaWNrZXJBUElFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENvbnRhY3RQaWNrZXJBUElFbmFibGVkIgorI2RlZmlu
ZSBXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U3Bl
ZWNoUmVjb2duaXRpb25FbmFibGVkIgogCiAvLyBUaGUgcHJlZmVyZW5jZSBrZXlzIGJlbG93IHRo
aXMgcG9pbnQgYXJlIGRlcHJlY2F0ZWQgYW5kIGhhdmUgbm8gZWZmZWN0LiBUaGV5IHNob3VsZAog
Ly8gYmUgcmVtb3ZlZCB3aGVuIGl0IGlzIGNvbnNpZGVyZWQgc2FmZSB0byBkbyBzby4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4
IDJhN2U4ZTRiN2U0NTQyMWM2MGU2NTY2NDdiYzMzYWY4YjY3MmU3ZTguLjlhMWM0ZTA0ZDdmZjg3
MWZhMGIxM2YxZTQ0YjNhMDQwNWUyMzMyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzM3NSw2ICszMzc1LDE2IEBAIHN0
YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVz
RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKV9zcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRTcGVlY2hS
ZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClfc2V0U3BlZWNo
UmVjb2duaXRpb25FbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVl
OmZsYWcgZm9yS2V5OldlYktpdFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXld
OworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0
ZU9ic29sZXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggOWJjMTBjYTcyNTEwMzU3YjdkZjZkYzVmYTE2
NGY4YTc4MDk4YjAwOS4uMGZkNDViODMzNzkzMDIyNGRjZWZhNTg2NjkzMGE3NGYwNjA1ODdlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCkBAIC0zNDgsNiArMzQ4LDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQ
cmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RF
UFIKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhUmVjb3JkZXJFbmFibGVk
OikgQk9PTCBfbWVkaWFSZWNvcmRlckVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBjb250YWN0UGlja2VyQVBJRW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDopIEJPT0wgX3NwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZDsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAoV2Vi
UHJpdmF0ZURlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZDUwMDczOGI5YWE3ZTU1NTQyYjMyZjY3MGVkNTU0NzcyZDFlZDJlNi4u
M2ZjOTNiYzk3YmI4ODhhYjI0NWZkMTIxN2E2NzNhNTJkODA0NWJlOCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTEwLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3
Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGVuYWJsZUV4cGVy
aW1lbnRhbEZlYXR1cmVzKToKKwogMjAyMC0xMC0yMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBUZXN0T3B0aW9uc0dlbmVyYXRlZEtleXMuaDoz
MDo1Mjogd2FybmluZzogYmFja3NsYXNoLW5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBhNmFhYjc5MDU4OTc0ZWNj
ZWMwNTdhNjgyNTdhMDM4OTcyNDc3M2I5Li4xNmZmYmYyNTA2ZmQ3MDFiYTRjOWRmYjdmNjZmNzY4
ZjQ5MGU4ODYyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC04NDIsNiArODQyLDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVy
ZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3Bl
Y3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkOllFU107CiAgICAgW3ByZWZl
cmVuY2VzIHNldEF1ZGlvV29ya2xldEVuYWJsZWQ6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgX3Nl
dFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDpZRVNdOwogCiAgICAgZm9yIChXZWJGZWF0dXJlKiBm
ZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CiAgICAg
ICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbDpAIk1lZGlhU2Vzc2lvbkVuYWJsZWQiXSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2YTY1ZWQyZDBhNGEwODAzNmY0OGI4NzA2MDUxYTA2YzU3NzljMWM4Li44NDE5NmQ4Y2Y1
ZTM0OTk2NDJhMzA0MzAxNWUwNDRhZGIzYjAwNmU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1
MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTAtMjAgIFJvYiBCdWlzICA8
cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgU2VsZWN0aW9uIHNwZWNpZmlj
IG1peGluIG9mIEdsb2JhbEV2ZW50SGFuZGxlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDFjNTZjNmZkMTlhNmY5YmEzMzFjOWM4MjdlMDdiMTk1NjYxYWFkOTQuLmY1NGFmMjJl
MjFmOWRlYjVkNDVkY2IzYTdiOWI3NmUwODEwMGU0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBp
L1NwZWVjaFJlY29nbml0aW9uLWJhc2ljcy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQu
dHh0OgorCiAyMDIwLTEwLTIwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbXBsZW1lbnQgPGZvcmdpdmluZy1zZWxlY3Rvci1saXN0PiBmb3IgOmlzLzp3aGVy
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zcGVlY2gtYXBpL1NwZWVjaFJlY29nbml0aW9uLWJhc2ljcy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkv
U3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3ZGQ2YThh
NTYwMDFlMjQ3NzdlYmI1ZjM5YTVjZDY0ZjcwZmJkMWUzLi4wYzhiNjg0MzIxZmZlODJkZjgwYjdm
YmUzMzZjZWNhNjkxYThhMDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBiYXNpY3Mg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24KK0ZBSUwgU3BlZWNoUmVjb2du
aXRpb24gYmFzaWNzIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdyZWNv
LmdyYW1tYXJzLmxlbmd0aCcpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVj
aC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDFjZjQ3M2E5MmMwZDAx
OTI1OTAzZjhjMWQyYWRkMGU1NzkxZTRlMDkuLjFhODFkYWNjNzViYjc0OTJiNTBkMmUwNjhmMTE5
N2MzY2ZmMGYwZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBp
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTEsOTMgKzExLDkzIEBAIFBBU1Mg
V2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lv
blN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBX
aW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZ3JhbW1hcnMgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBsYW5nIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29udGludW91cyBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGludGVyaW1SZXN1
bHRzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24i
IG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWF4
QWx0ZXJuYXRpdmVzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBvcGVy
YXRpb24gc3RhcnQoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogb3Bl
cmF0aW9uIHN0b3AoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogb3Bl
cmF0aW9uIGFib3J0KCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBvbmF1ZGlvc3RhcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbnNvdW5kc3RhcnQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaHN0YXJ0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zcGVlY2hlbmQgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4
cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNvdW5kZW5kIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hdWRpb2VuZCBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlM
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9ucmVzdWx0IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25ub21hdGNoIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25lcnJvciBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3RhcnQgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVuZCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24g
d2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlM
IFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBhc3NlcnRfZXF1YWxz
OiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBT
cGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdyYW1tYXJzIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVu
IGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImxhbmciIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6
IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVs
bCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNw
ZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBT
cGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY29udGludW91cyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hl
biBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVu
Y2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnRlcmltUmVzdWx0cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtYXhB
bHRlcm5hdGl2ZXMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RhcnQoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5n
IG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJzdG9wKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWJvcnQoKSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5n
IG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2Fu
J3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvbmF1ZGlvc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBi
dXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVj
aFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3VuZHN0YXJ0IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVu
IGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5j
ZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9uc3BlZWNoc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zcGVl
Y2hlbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVj
dCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9u
IgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3VuZGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbmF1ZGlvZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNv
Z25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVj
b2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ucmVzdWx0IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9ubm9tYXRjaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5l
eHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1
dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNo
UmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVj
aFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmVycm9yIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1
YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9y
OiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9uc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBi
dXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVj
aFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25lbmQiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVh
dGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBlcnJvciBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG1lc3NhZ2UgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0cmFuc2NyaXB0IGFz
c2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29uZmlkZW5jZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBl
eHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwg
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQg
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRf
b3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmli
dXRlIGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
IGludGVyZmFjZTogb3BlcmF0aW9uIGl0ZW0odW5zaWduZWQgbG9uZykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpc0Zp
bmFsIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2Nv
cGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNl
OiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25nKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qi
IGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVk
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2du
aXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdEluZGV4IGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBt
aXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
cmVzdWx0cyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FdmVudCIgbWlzc2luZworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5CitGQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGdyYW1tYXJz
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
Z3JhbW1hcnMiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIGxhbmcKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgY29udGludW91cworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBpbnRlcmltUmVzdWx0cworUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBtYXhBbHRlcm5hdGl2ZXMKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gc3RhcnQoKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBzdG9wKCkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBvcGVyYXRpb24gYWJvcnQoKQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBvbmF1ZGlvc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgb25zb3VuZHN0YXJ0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9uc3BlZWNoc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb25zcGVlY2hlbmQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgb25zb3VuZGVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBvbmF1ZGlvZW5kCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTog
YXR0cmlidXRlIG9ucmVzdWx0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIG9ubm9tYXRjaAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbmVycm9yCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IG9uc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25l
bmQKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKQorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFNwZWVj
aFJlY29nbml0aW9uKCkKK0ZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdyYW1tYXJzIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJncmFtbWFycyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGFuZyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNvbnRpbnVvdXMiIHdp
dGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnRlcmltUmVzdWx0
cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNl
OiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm1heEFsdGVy
bmF0aXZlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0
YXJ0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVy
ZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdG9w
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhYm9ydCgp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25hdWRpb3N0
YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zb3Vu
ZHN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRl
cmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25z
cGVlY2hzdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24g
aW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Im9uc3BlZWNoZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAib25zb3VuZGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9uYXVkaW9lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJvbnJlc3VsdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9ubm9tYXRjaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm9uZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJvbnN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
b25lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxl
bmd0aAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBu
YW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTog
YXR0cmlidXRlIGVycm9yCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBtZXNzYWdlCitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlIG9iamVjdCBuYW1l
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSB0cmFuc2NyaXB0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29uZmlkZW5jZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbGVuZ3Ro
CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRlIGxlbmd0aAorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVk
IGxvbmcpCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogYXR0cmlidXRl
IGlzRmluYWwKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoCitQ
QVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVt
KHVuc2lnbmVkIGxvbmcpCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJj
b25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRJbmRleAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdHMKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaEdy
YW1tYXIiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBtaXNzaW5nCiBGQUlMIFNw
ZWVjaEdyYW1tYXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgZXhwZWN0ZWQg
cHJvcGVydHkgIlNwZWVjaEdyYW1tYXIiIG1pc3NpbmcKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdy
YW1tYXIiIG1pc3NpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggYjc3ZTY5NDI0MTAyNDQyNDY2ZjBmZjhlNzAwODhhMDJmZTMyNmM1YS4uNGJjNTY1YWZm
YTI2ZTUyZjA5YzllNTViN2VkNjNkMDhjYzFiMzFhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0LDYgKzQ0LDggQEAgd2Via2l0Lm9yZy9iLzE4MTk2
NCBmYXN0L3RleHQvbWFjL3NlbGVjdC1jaGFyYWN0ZXItYmVmb3JlLXplcm8td2lkdGgtam9pbmVy
Lmh0bWwKIHBvaW50ZXJldmVudHMvbW91c2UgWyBQYXNzIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cyBbIFBhc3MgXQogCitpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCg==
</data>
<flag name="commit-queue"
          id="428240"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411910</attachid>
            <date>2020-10-20 13:39:31 -0700</date>
            <delta_ts>2020-10-20 17:40:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217780-20201020133930.patch</filename>
            <type>text/plain</type>
            <size>109887</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU4ODdmMmI3MTZkNTA2Mjg1ZWIzYjBj
ZjNhYjFjZDQwNzQ3YjBlYjguLjNhNDU2ZDdjNjMyNzJjNDg1OGVlZGM0YzEyNzNlNjFkYjk5ZDdj
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZ
b3Vlbm4gRmFibGV0LgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgor
CiAyMDIwLTEwLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBza2VsZXRvbiBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYSBTZXNzaW9uIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDNlYTNlZmI4NjA1MzgzZGY2YWVhZTdhYTkyZmFmOTI4OTJiNjlmNzguLmRlOWJjYzU0
MTM5ZDJlZmZhMjcxMzcxMWQxZDJhY2JhZWZjOWNkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4
MCBAQAorMjAyMC0xMC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcwMzUwNzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgQWRkIGJpbmRpbmdzIGNvZGUgYW5kIGEgZmVhdHVyZSBmbGFnIGZvciBTcGVlY2hSZWNv
Z25pdGlvbi4KKyAgICAgICAgU3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9zcGVlY2gtYXBp
LyNzcGVlY2hyZWNvLXNlY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbmNsdWRlcyBhbGwg
aW50ZXJmYWNlcyBvZiBTcGVlY2hSZWNvZ25pdGlvbiwgZXhjZXB0IFNwZWVjaEdyYW1tYXIgYW5k
IFNwZWVjaEdyYW1tYXJMaXN0LiBXZSBoYXZlIG5vdAorICAgICAgICBkZWNpZGVkIHdoYXQgZ3Jh
bW1hciBmb3JtYXQgYW5kIHR5cGVzIHdlIGFyZSBnb2luZyB0byBzdXBwb3J0LCBvciBob3cgd2Ug
YXJlIGdvaW5nIHRvIHN1cHBvcnQgaXQgaWYgaXQgaXMgbm90CisgICAgICAgIGRlZmluZWQgaW4g
ZXhpc2l0aW5nIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2aWNlLiBTbyBsZXQncyBhZGQgdGhvc2Ug
aW50ZXJmYWNlcyBhZnRlciB3ZSBmaWd1cmUgdGhpcyBvdXQuIAorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gUmViYXNlbGluZSBleGlzdGlucyB0ZXN0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6U3BlZWNoUmVjb2duaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnN0b3BSZWNvZ25pdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWJvcnRSZWNvZ25pdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6bGFuZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0TGFuZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6Y29udGludW91cyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbjo6c2V0Q29udGludW91cyk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbjo6aW50ZXJpbVJlc3VsdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb246OnNldEludGVyaW1SZXN1bHRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uOjptYXhBbHRlcm5hdGl2ZXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb246OnNldE1heEFsdGVybmF0aXZlcyk6CisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6U3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhY2UgY29uc3QpOgorICAgICAgICAqIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2du
aXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Ojpl
dmVudEludGVyZmFjZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25FdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHQ6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjppdGVtIGNvbnN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjppdGVtIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20v
RXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAy
MDIwLTEwLTIwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAg
ICAgRml4IG5vbi1jLXR5cGVkZWYtZm9yLWxpbmthZ2Ugd2FybmluZyBpbiBTb2NrZXRTdHJlYW1I
YW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlMzE3MTM5ODU4NzZmMjJhZjgy
MDI0OGIwZDZiNWEyMmRjNmRjNGY5Li5kYmE3ZDM0NzE5NDUwMWVhNjBhNGFhZGE0NDc0MjFhMzU1
MWQyZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1
MDcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc3BlZWNoUmVjb2du
aXRpb25FbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9zZXRTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaDoKKwogMjAyMC0xMC0yMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVHdlYWsgV2ViUHJlZmVyZW5jZXMqLnlhbWwgImV4cG9zZWQiIGtleSB0byBvbmx5IGlu
ZGljYXRlIHRoYXQgdGhlIGtleSBzaG91bGQgbm90IGJlIGNoYW5nZWFibGUgYnkgdGhlIGZyb250
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDAzMzA3ZDhkYjhkMzBhMGE2YzVl
YzE0NGQ3MTA0OWZhNTA1Zjc5OGQuLjQ1ZmIwYjc5NTg0NTU2N2UyMTQ5YWRlMjdkMDlhM2MxZDg1
YmIyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVm
ZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC03NDEsNiArNzQxLDE4IEBA
IFNob3VsZERlZmVyQXN5bmNocm9ub3VzU2NyaXB0c1VudGlsQWZ0ZXJEb2N1bWVudExvYWRPckZp
cnN0UGFpbnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAorU3BlZWNoUmVj
b2duaXRpb25FbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU3Bl
ZWNoUmVjb2duaXRpb24gQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
U3BlZWNoUmVjb2duaXRpb24gb2YgV2ViU3BlZWNoIEFQSSIKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogIyBG
SVhNRTogVGhpcyBpcyBlbmFibGVkIHdoZW4gRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFUykg
aXMgdHJ1ZSBpbiBXZWJLaXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGF0
IGZvciBXZWJLaXRMZWdhY3kgYXMgd2VsbC4KIFNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZDoK
ICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggZTIyMjk4NzViNDc3YjFj
NmJhYmJjNWZlZGQ5N2NhNTcyOTFkM2MyMy4uMGI3MzhkMzhkYThjNjhkNWFiZmJhNzI4NmRjYmMz
NGNiZTdlNDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC00NDUsNiArNDQ1LDEwIEBA
CiAjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDAKICNlbmRpZgogCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCisjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhF
U0lTIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCiAj
ZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBiOTBjMzY4YWRlZGE3NDczOTc3ZjA5OGE4ODNiMTQ1NzMwYjQ2YjU3Li45NDE0NzIy
NmMzNWUxMjQ1ZmU4ZGNiZTk3ZjNhN2Q2MjJkZGYxYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNDQ4LDYgKzQ0OCwxNCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAgICAgTW9kdWxlcy9yZW1v
dGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbAogCisgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCisgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkVycm9yRXZlbnQuaWRsCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5pZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5p
ZGwKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCisK
ICAgICBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbAogICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5pZGwKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXNFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CmluZGV4IGM3NGU1MGZjYzYyMDUwZjk0NTA1NzdjOWMzMzk3N2RmZDNi
NWI3N2IuLmVmMGMxNWNkNzAxNDc4ZjYyYWZmZTFkYTZlYjk4MDQ0YTU0MmViMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjg5LDYg
KzI4OSwxMyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3F1b3RhL1dvcmtlck5hdmlnYXRvcitT
dG9yYWdlUXVvdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL0hU
TUxNZWRpYUVsZW1lbnQrUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbAor
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNv
ZGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVy
cm9yRXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzRXZlbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDBlMTRmNzZjYjg2MmI1MTk2ZjE3ZWNjNDVlNzRmMTdkMzZm
NzYwOGIuLmZlNmJlOGM0NGViNGIyNjUwNDI4Mzg3MmE1NmE5ZWJjODRkNWFhZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMTMy
LDYgKzIxMzIsMjAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTb3VyY2VCdWZmZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlv
bi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hTeW50aGVzaXMuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRoZXNpcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaFN5bnRo
ZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjIyYTFlNWZl
NzU5NGQyODdjMzY1ZDQzMDFjM2VlYzI3MDkwMGEzMC4uMTI0YzJiODUyNDY2M2QwZTgwYjkzYTEw
OTYxN2MwMGI5ZGVmYTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zMTYs
NiArMzE2LDEzIEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsIFwKKwkkKFdlYkNvcmUp
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5pZGwgXAorCSQoV2Vi
Q29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgXAorCSQoV2Vi
Q29yZSkvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsIFwKKwkkKFdl
YkNvcmUpL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3ku
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Db3VudFF1ZXVpbmdTdHJhdGVn
eS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlQnl0ZVN0cmVh
bUNvbnRyb2xsZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIzNjRjMzY0NWU1MjE1OTJkMjZh
MWZjZTZhMGNhYjZhMjViYjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb24u
aCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoU3BlZWNoUmVjb2duaXRpb24pOworCitSZWY8U3BlZWNoUmVjb2duaXRpb24+IFNwZWVjaFJl
Y29nbml0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uKGRvY3VtZW50KSk7Cit9CisKK1NwZWVjaFJlY29n
bml0aW9uOjpTcGVlY2hSZWNvZ25pdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBBY3Rp
dmVET01PYmplY3QoZG9jdW1lbnQpCit7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKK3sKKyAg
ICBhYm9ydFJlY29nbml0aW9uKCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFNwZWVjaFJlY29n
bml0aW9uOjpzdGFydFJlY29nbml0aW9uKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uOjpzdG9wUmVjb2duaXRpb24oKQoreworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uOjphYm9ydFJlY29nbml0aW9uKCkKK3sKK30KKworY29uc3QgY2hhciogU3Bl
ZWNoUmVjb2duaXRpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biAiU3BlZWNoUmVjb2duaXRpb24iOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZWU2N2MxYjUyN2YzNmQyOGE0MDJlMGI0YTQzNTZlNWVhZTlkYzZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b24uaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uIDogcHVibGljIEFjdGl2
ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb24+LCBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSAgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
U3BlZWNoUmVjb2duaXRpb24pOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2du
aXRpb24+IGNyZWF0ZShEb2N1bWVudCYpOworCisgICAgY29uc3QgU3RyaW5nJiBsYW5nKCkgY29u
c3QgeyByZXR1cm4gbV9sYW5nOyB9CisgICAgdm9pZCBzZXRMYW5nKFN0cmluZyYmIGxhbmcpIHsg
bV9sYW5nID0gV1RGTW92ZShsYW5nKTsgfQorCisgICAgYm9vbCBjb250aW51b3VzKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250aW51b3VzOyB9CisgICAgdm9pZCBzZXRDb250aW51b3VzKGJvb2wgY29u
dGludW91cykgeyBtX2NvbnRpbnVvdXMgPSBjb250aW51b3VzOyB9CisKKyAgICBib29sIGludGVy
aW1SZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmltUmVzdWx0czsgfQorICAgIHZvaWQg
c2V0SW50ZXJpbVJlc3VsdHMoYm9vbCBpbnRlcmltUmVzdWx0cykgeyBtX2ludGVyaW1SZXN1bHRz
ID0gaW50ZXJpbVJlc3VsdHM7IH0KKworICAgIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcygpIGNv
bnN0IHsgcmV0dXJuIG1fbWF4QWx0ZXJuYXRpdmVzOyB9CisgICAgdm9pZCBzZXRNYXhBbHRlcm5h
dGl2ZXModW5zaWduZWQgbWF4QWx0ZXJuYXRpdmVzKSB7IG1fbWF4QWx0ZXJuYXRpdmVzID0gbWF4
QWx0ZXJuYXRpdmVzOyB9CisKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzdGFydFJlY29nbml0aW9u
KCk7CisgICAgdm9pZCBzdG9wUmVjb2duaXRpb24oKTsKKyAgICB2b2lkIGFib3J0UmVjb2duaXRp
b24oKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTcGVlY2hSZWNvZ25pdGlvbihEb2N1
bWVudCYpOworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0OworICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTcGVlY2hSZWNv
Z25pdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CisKKyAgICBTdHJpbmcgbV9sYW5nOworICAgIGJvb2wgbV9jb250aW51b3Vz
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faW50ZXJpbVJlc3VsdHMgeyBmYWxzZSB9OworICAgIHVp
bnQ2NF90IG1fbWF4QWx0ZXJuYXRpdmVzIHsgMSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwNTIzMjE2MzYwZGM2YjgxNTk2YTFmZjhmZDE5ZDNlNjE0
ZjA0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBBY3RpdmVET01PYmplY3QsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1TcGVlY2hSZWNvZ25pdGlv
biwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb24gOiBF
dmVudFRhcmdldCB7CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcigpOworCisg
ICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOworICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRp
bnVvdXM7CisgICAgYXR0cmlidXRlIGJvb2xlYW4gaW50ZXJpbVJlc3VsdHM7CisgICAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbWF4QWx0ZXJuYXRpdmVzOworCisgICAgW01heVRocm93RXhjZXB0
aW9uLCBJbXBsZW1lbnRlZEFzPXN0YXJ0UmVjb2duaXRpb25dIHVuZGVmaW5lZCBzdGFydCgpOwor
ICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BSZWNvZ25pdGlvbl0gdW5kZWZpbmVkIHN0b3AoKTsKKyAg
ICBbSW1wbGVtZW50ZWRBcz1hYm9ydFJlY29nbml0aW9uXSB1bmRlZmluZWQgYWJvcnQoKTsKKwor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hdWRpb3N0YXJ0OworICAgIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25zb3VuZHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25z
cGVlY2hzdGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3BlZWNoZW5kOworICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zb3VuZGVuZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9uYXVkaW9lbmQ7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VsdDsK
KyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubm9tYXRjaDsKKyAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uZXJyb3I7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXJ0Owor
ICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25lbmQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43M2M0ZDVkNDE2N2QwZWIyMjhmMDEzYzU2YzNlMzVkYTlmNjY4
ZWZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlKTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IFNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU6OmNyZWF0ZShTdHJpbmcmJiB0cmFuc2NyaXB0LCBk
b3VibGUgY29uZmlkZW5jZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlKFdURk1vdmUodHJhbnNjcmlwdCksIGNvbmZpZGVuY2UpKTsKK30K
KworU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZShTdHJpbmcmJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSkKKyAgICA6IG1fdHJh
bnNjcmlwdChXVEZNb3ZlKHRyYW5zY3JpcHQpKQorICAgICwgbV9jb25maWRlbmNlKGNvbmZpZGVu
Y2UpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNDJiOWRmOGQ3MjYzMGQ1OWM5YzkxMjJmYTlkODk3MDNlNWY1ODczCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgZmluYWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiB7CisgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+IGNyZWF0ZShT
dHJpbmcmJiB0cmFuc2NyaXB0LCBkb3VibGUgY29uZmlkZW5jZSk7CisKKyAgICBjb25zdCBTdHJp
bmcmIHRyYW5zY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zY3JpcHQ7IH0KKyAgICBkb3Vi
bGUgY29uZmlkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlkZW5jZTsgfQorCitwcml2YXRl
OgorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUoU3RyaW5nJiYgdHJhbnNjcmlwdCwg
ZG91YmxlIGNvbmZpZGVuY2UpOworCisgICAgU3RyaW5nIG1fdHJhbnNjcmlwdDsKKyAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWQ3N2FlZGJjMjg5M2Y4NzkwNTUzMWU3Njgw
ZDRmMTMyOTI3ZDk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEVuYWJs
ZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgdHJhbnNjcmlwdDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQg
Y29uZmlkZW5jZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTUyZWM0ODM5
ZDM3ZDJjMmZmOWVmMzM1MTZlNTUzNDIzMjBiM2UwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaApAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSB7CisgICAgTm9T
cGVlY2gsCisgICAgQWJvcnRlZCwKKyAgICBBdWRpb0NhcHR1cmUsCisgICAgTmV0d29yaywKKyAg
ICBOb3RBbGxvd2VkLAorICAgIFNlcnZpY2VOb3RBbGxvd2VkLAorICAgIEJhZEdyYW1tYXIsCisg
ICAgTGFuZ3VhZ2VOb3RTdXBwb3J0ZWQKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JDb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzcxYjk0Mjg1ZDY0YjFjMTY3ZDc1YTJl
MDViMTZlY2Q5NmRlZDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaWRsCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitlbnVtIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIHsKKyAgICAibm8t
c3BlZWNoIiwKKyAgICAiYWJvcnRlZCIsCisgICAgImF1ZGlvLWNhcHR1cmUiLAorICAgICJuZXR3
b3JrIiwKKyAgICAibm90LWFsbG93ZWQiLAorICAgICJzZXJ2aWNlLW5vdC1hbGxvd2VkIiwKKyAg
ICAiYmFkLWdyYW1tYXIiLAorICAgICJsYW5ndWFnZS1ub3Qtc3VwcG9ydGVkIgorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJy
b3JFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MDEwMjRmNjM3MTE0NjNlYzE3MzQyMDY0
OWY4MTM1NzFjZGJiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQpOworCitSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBJbml0JiYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQodHlwZSwgV1RGTW92ZShp
bml0KSwgaXNUcnVzdGVkKSk7Cit9CisKK1JlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUsIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlIGVycm9yLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50KHR5cGUsIGVycm9yLCBtZXNzYWdlKSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudDo6U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUs
IEluaXQmJiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXZlbnQodHlwZSwgaW5p
dCwgaXNUcnVzdGVkKQorICAgICwgbV9lcnJvcihpbml0LmVycm9yKQorICAgICwgbV9tZXNzYWdl
KFdURk1vdmUoaW5pdC5tZXNzYWdlKSkKK3sKK30KKworU3BlZWNoUmVjb2duaXRpb25FcnJvckV2
ZW50OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
KyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykKKyAgICAsIG1fZXJyb3IoZXJyb3IpCisgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkK
K3sKK30KKworRXZlbnRJbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50OjpldmVu
dEludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudEludGVyZmFjZVR5cGU7Cit9CisKK307IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYmI4NDRlYTNmOGU1MTEwNWM5NWQ1YmY5NzUwYjE1
NTljNTIyZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaApAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKKyAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCk7CitwdWJs
aWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgfTsKKwor
ICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYsIEluaXQmJiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CisgICAgc3Rh
dGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3Ry
aW5nJiwgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUsIGNvbnN0IFN0cmluZyYpOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9y
OyB9CisgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdl
OyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50KGNvbnN0IEF0
b21TdHJpbmcmLCBJbml0JiYsIElzVHJ1c3RlZCk7CisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50KGNvbnN0IEF0b21TdHJpbmcmLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZSwgY29u
c3QgU3RyaW5nJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0
IGZpbmFsOworCisgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgbV9lcnJvcjsKKyAgICBT
dHJpbmcgbV9tZXNzYWdlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FcnJvckV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWNlZmVlM2FmYzU5YTNlNzVkZTJmYzU4OTI1
OTgyM2EyZGM2Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisg
ICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCA6IEV2ZW50IHsKKyAgICBjb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgU3BlZWNoUmVjb2du
aXRpb25FcnJvckV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUgZXJyb3I7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKworZGljdGlvbmFyeSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICByZXF1aXJlZCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZSBlcnJvcjsKKyAgICBET01TdHJpbmcgbWVzc2FnZSA9ICIiOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg0NmRhYTYyZTU4MjJkZTAxOGRmYjk5M2IwM2RlNTlj
ZTMzNGI1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25FdmVudC5o
IgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmgiCisjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVjb2duaXRpb25FdmVudCk7CisKK1JlZjxTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50PiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgSW5pdCYmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25FdmVudCh0eXBlLCBXVEZN
b3ZlKGluaXQpLCBpc1RydXN0ZWQpKTsKK30KKworUmVmPFNwZWVjaFJlY29nbml0aW9uRXZlbnQ+
IFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCB1
aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4m
JiByZXN1bHRzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9u
RXZlbnQodHlwZSwgcmVzdWx0SW5kZXgsIFdURk1vdmUocmVzdWx0cykpKTsKK30KKworU3BlZWNo
UmVjb2duaXRpb25FdmVudDo6U3BlZWNoUmVjb2duaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5n
JiB0eXBlLCBJbml0JiYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV2ZW50KHR5
cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fcmVzdWx0SW5kZXgoaW5pdC5yZXN1bHRJbmRl
eCkKKyAgICAsIG1fcmVzdWx0cyhXVEZNb3ZlKGluaXQucmVzdWx0cykpCit7Cit9CisKK1NwZWVj
aFJlY29nbml0aW9uRXZlbnQ6OlNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSwgdWludDY0X3QgcmVzdWx0SW5kZXgsIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3Q+JiYgcmVzdWx0cykKKyAgICA6IEV2ZW50KHR5cGUsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykKKyAgICAsIG1fcmVzdWx0SW5kZXgocmVzdWx0
SW5kZXgpCisgICAgLCBtX3Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSkKK3sKK30KKworRXZlbnRJ
bnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25FdmVudDo6ZXZlbnRJbnRlcmZhY2UoKSBjb25zdAor
eworICAgIHJldHVybiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50SW50ZXJmYWNlVHlwZTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MmU4ODRjNzkw
YTNhOTRhYzJhNmFkYWRlNTQzZjNiYmRjZjlhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmgKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXZlbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU3BlZWNoUmVjb2duaXRpb25FdmVudCk7Citw
dWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFdmVudEluaXQgeworICAgICAgICB1aW50NjRfdCBy
ZXN1bHRJbmRleDsKKyAgICAgICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4g
cmVzdWx0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYsIEluaXQmJiwgSXNUcnVzdGVkID0gSXNUcnVzdGVk
OjpObyk7CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbVN0cmluZyYsIHVpbnQ2NF90IHJlc3VsdEluZGV4LCBSZWZQdHI8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiYmKTsKKworICAgIHVpbnQ2NF90IHJlc3VsdEluZGV4KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXN1bHRJbmRleDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dCogcmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0cy5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFNwZWVjaFJlY29nbml0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIEluaXQmJiwg
SXNUcnVzdGVkKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcm
LCB1aW50NjRfdCByZXN1bHRJbmRleCwgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dD4mJik7CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IGZpbmFs
OworCisgICAgdWludDY0X3QgbV9yZXN1bHRJbmRleDsKKyAgICBSZWZQdHI8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNTMxYThlZmJiZjFkOTU5Y2RjYjEyNGQ2N2Vi
MDkwYzY1ZDNhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgRXhw
b3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBFdmVudCB7
CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIFNwZWVjaFJlY29nbml0aW9uRXZlbnRJ
bml0IGV2ZW50SW5pdERpY3QpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IHJlc3VsdEluZGV4OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QgcmVzdWx0czsKK307CisKK2RpY3Rpb25hcnkgU3BlZWNoUmVjb2duaXRpb25FdmVu
dEluaXQgOiBFdmVudEluaXQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXggPSAwOwor
ICAgIHJlcXVpcmVkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRzOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjE5MzIzNjdiYTNkYzgwOGIwZjYyNWRkYWY3Zjcz
NjQwZjUyYzViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZXN1
bHQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdDo6Y3JlYXRlKFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+
JiYgYWx0ZXJuYXRpdmVzLCBib29sIGlzRmluYWwpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoV1RGTW92ZShhbHRlcm5hdGl2ZXMpLCBpc0ZpbmFs
KSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uUmVzdWx0OjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiYmIGFsdGVybmF0aXZl
cywgYm9vbCBpc0ZpbmFsKQorICAgIDogbV9hbHRlcm5hdGl2ZXMoV1RGTW92ZShhbHRlcm5hdGl2
ZXMpKQorICAgICwgbV9pc0ZpbmFsKGlzRmluYWwpCit7Cit9CisKK1NwZWVjaFJlY29nbml0aW9u
QWx0ZXJuYXRpdmUqIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OjppdGVtKHVpbnQ2NF90IGluZGV4
KSBjb25zdAoreworICAgIHJldHVybiAoaW5kZXggPCBtX2FsdGVybmF0aXZlcy5zaXplKCkpID8g
bV9hbHRlcm5hdGl2ZXNbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTljZjkwZmQzOGFlYzAyZDk3MTIz
YzIwNTk2MGZjOTQ5YzFiZWY2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiBj
cmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPj4mJiwgYm9vbCBp
c0ZpbmFsKTsKKworICAgIHVpbnQ2NF90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0ZXJu
YXRpdmVzLnNpemUoKTsgfQorICAgIGJvb2wgaXNGaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNG
aW5hbDsgfQorICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUqIGl0ZW0odWludDY0X3Qg
aW5kZXgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KFZl
Y3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZT4+JiYsIGJvb2wgaXNGaW5hbCk7
CisKKyAgICBWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmU+PiBtX2FsdGVy
bmF0aXZlczsKKyAgICBib29sIG1faXNGaW5hbCB7IGZhbHNlIH07Cit9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNmZWZlOGYyNzM3MWQ0MmJmMzViOTQ0ZDczZmM2ZWFlOWIy
MzRmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKKyAgICBnZXR0ZXIgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpdGVtKHVu
c2lnbmVkIGxvbmcgaW5kZXgpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmlu
YWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg1MTAzNTM5MWYx
NGQwZGFhNjAwYmE1MGI0YjY0ZGM5ZGI1OGRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0KTsKKworUmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdD4g
U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCgpKTsKK30KKworUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OjpjcmVh
dGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYgbGlzdCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QoV1RGTW92ZShs
aXN0KSkpOworfQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0OjppdGVtKHVpbnQ2NF90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiAoaW5k
ZXggPCBtX2xpc3Quc2l6ZSgpKSA/IG1fbGlzdFtpbmRleF0ucHRyKCkgOiBudWxscHRyOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDo6YWRkKFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0JiByZXN1bHQpCit7CisgICAgbV9saXN0LmFwcGVuZChtYWtlUmVmKHJlc3VsdCkpOwor
fQorCitTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdChWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0Pj4mJiBsaXN0KQorICAgIDog
bV9saXN0KFdURk1vdmUobGlzdCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE0OWI1MjlmYjE5N2RlMWVlODc3NmUzNGUz
OGU5MTZmM2FlMWY5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q+IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3Q+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4+JiYpOworCisgICAg
Ym9vbCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0X3QgaW5kZXgpIGNvbnN0OworCisgICAgdm9p
ZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmKTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QoKSA9IGRlZmF1bHQ7CisgICAgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0KFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiYm
KTsKKworICAgIFZlY3RvcjxSZWY8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+PiBtX2xpc3Q7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMDU2ZTQyYjQ3M2UxMDE1MjBiMzg3NmY1ODBjYzNlMWVhNTBlZDA2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVu
YWJsZWRCeVNldHRpbmc9U3BlZWNoUmVjb2duaXRpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNr
c1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5n
dGg7CisgICAgZ2V0dGVyIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBkNzY0NDE1YTg0MmIyZTZkZjQyNzMzNmEx
YTEyMzU5M2I4ODVkMTY1Li4yODAzZTRiYmQwY2JhNTQ4NWEyOGRlOGYxYTg0ZjYyMmIxZTQ5ODAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTg0LDYgKzE4NCwxMiBAQCBNb2R1bGVzL3BpY3R1cmVpbnBp
Y3R1cmUvRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwCiBNb2R1bGVzL3BpY3R1cmVpbnBp
Y3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCiBNb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxh
eWJhY2svUmVtb3RlUGxheWJhY2suY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bi5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNFdmVudC5jcHAKQEAgLTM1MDAsNiArMzUwNiwxMyBAQCBKU1NoYXJlRGF0YS5jcHAK
IEpTU2xvdGFibGUuY3BwCiBKU1NvdXJjZUJ1ZmZlci5jcHAKIEpTU291cmNlQnVmZmVyTGlzdC5j
cHAKK0pTU3BlZWNoUmVjb2duaXRpb24uY3BwCitKU1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmNwcAorSlNTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCitKU1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmNwcAorSlNTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3Bw
CiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAKIEpTU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCiBKU1Nw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhOWMwNjA2NTFjYThhNjc2OGYxMTdhYWQx
M2M0Y2VkNzA5NWJjMzZmLi5iZGE1MmVhYjQzY2UyYzFlMzgzNGY1ZmNkZjA1ZmQ4YjBlMzZjZjg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNzMwLDYgKzI3MzAsMTMgQEAKIAkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDNDQjgwMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggKi87IH07
CiAJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NDJDOUQw
RDJCMzM1QzAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTkz
NDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTA3RTMxMjVCQkJDODAwN0Yy
M0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzQ5NTBCMTI1Mzk0MzQ4MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCAqLzsgfTsK
KwkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRp
dmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1
MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi87
IH07CisJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
Q29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi87
IH07CisJCTkzNDk1MEQxMjUzOTQzNzAwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NDk1MEMzMjUzOTQzNTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaCAq
LzsgfTsKKwkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1
MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmggKi87IH07CisJ
CTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQzEyNTM5
NDM1MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggKi87IH07CisJCTkzNDk1
MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEM0MjUzOTQz
NTIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCAqLzsgfTsKIAkJOTM0
Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNENDMTA5MEVEQjIyMzkwMEE2NThG
MiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi87IH07CiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2
OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzRGNzEzQzBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VF
cnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTI0Nyw2ICsxMTI1
NCwyNiBAQAogCQk5MzQ0MkM5RDBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0NDJDOUYwRDJCMzM2
MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTA3RTMxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBo
aWNzQ29udGV4dENHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNz
Q29udGV4dENHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEFEMjUzOTQz
NDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBBRjI1Mzk0MzQ3MDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDk1MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDk1MEI4MjUzOTQzNEMwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoUmVjb2du
aXRpb25FcnJvckNvZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBC
OTI1Mzk0MzREMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0OTUwQkEyNTM5NDM0RDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDk1MEJEMjUzOTQzNEYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQkYyNTM5NDM1MDAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0OTUwQzAy
NTM5NDM1MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDMzI1Mzk0MzUyMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
RXJyb3JFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDNDI1Mzk0
MzUyMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDNzI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ5NTBDODI1Mzk0MzU0MDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzNDk1MEM5MjUzOTQzNTUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNv
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U291cmNlQ29kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGNzEzNzBENUE2RUZGMDAwMThENjkg
LyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI1Mzg2LDYgKzI1NDEzLDI2IEBACiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1
IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1
RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1
QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKKwkJ
CQk5MzQ5NTBDNzI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uY3BwICovLAor
CQkJCTkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovLAor
CQkJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8s
CisJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovLAorCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmggKi8sCisJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzNDk1MEFGMjUzOTQz
NDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovLAorCQkJCTkzNDk1
MEI4MjUzOTQzNEMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5pZGwgKi8s
CisJCQkJOTM0OTUwQzgyNTM5NDM1NDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudC5jcHAgKi8sCisJCQkJOTM0OTUwQzMyNTM5NDM1MjAwOTlGMTcxIC8qIFNwZWVjaFJlY29n
bml0aW9uRXJyb3JFdmVudC5oICovLAorCQkJCTkzNDk1MEJBMjUzOTQzNEQwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuaWRsICovLAorCQkJCTkzNDk1MEMwMjUzOTQzNTAw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmNwcCAqLywKKwkJCQk5MzQ5NTBDOTI1
Mzk0MzU1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25FdmVudC5oICovLAorCQkJCTkzNDk1
MEI0MjUzOTQzNDkwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbCAqLywKKwkJ
CQk5MzQ5NTBCRjI1Mzk0MzUwMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3Bw
ICovLAorCQkJCTkzNDk1MEMxMjUzOTQzNTEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdC5oICovLAorCQkJCTkzNDk1MEI5MjUzOTQzNEQwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5pZGwgKi8sCisJCQkJOTM0OTUwQkQyNTM5NDM0RjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAgKi8sCisJCQkJOTM0OTUwQzQyNTM5NDM1MjAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oICovLAorCQkJCTkzNDk1MEM1MjUz
OTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAogCQkJ
CUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJ
CUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlB
QTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTM0
MTE3LDYgKzM0MTY0LDEzIEBACiAJCQkJODRBODFGNDIwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJj
ZUdyYXBoaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMUEyN0FFMTBDOUJGRDgwMDAyNkE0MiAv
KiBTcGFjZVNwbGl0U3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjZDREUwRjExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1
MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQwMjUzOTQzNkMwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDEy
NTM5NDM3MDAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTM0OTUwRDIyNTM5NDM3MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDk1MEQ0MjUzOTQzN0MwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0OTUwRDYyNTM5
NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA5NzAyY2M1OTcy
ZTk5NTc5NmIxNzg0YjY5YjAwYjYyNzE3MWY0NDM3Li5kZWU3NmNlMmJlMzMzODUzNTA3ODM5Yjcw
M2M1NWNlNjMyNTQ5OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpIFwKICAgICBtYWNybyhTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uKSBcCiAgICAgbWFjcm8oU2hhZG93Um9vdCkgXAorICAgIG1h
Y3JvKFNwZWVjaFJlY29nbml0aW9uKSBcCisgICAgbWFjcm8oU3BlZWNoUmVjb2duaXRpb25BbHRl
cm5hdGl2ZSkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCkgXAorICAg
IG1hY3JvKFNwZWVjaFJlY29nbml0aW9uRXZlbnQpIFwKKyAgICBtYWNybyhTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCkgXAorICAgIG1hY3JvKFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCkgXAog
ICAgIG1hY3JvKFN0YXRpY1JhbmdlKSBcCiAgICAgbWFjcm8oU3RlcmVvUGFubmVyTm9kZSkgXAog
ICAgIG1hY3JvKFN0eWxlUHJvcGVydHlNYXBSZWFkT25seSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5pbgppbmRleCA3MmNmYWE1ZWIwNzU5NjBhNzM3ZmJlMjM1MWU1NDlkZDQ0NGM3ZjYzLi43Yjc4
MmI4MTIzZDIxMzhmY2UyMjRmOTQ5YWRjMDk4MmU5MDczYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbgpAQCAtNjIsNiArNjIsOCBAQCBSVENEYXRhQ2hhbm5lbEV2ZW50IGNvbmRpdGlvbmFs
PVdFQl9SVEMKIFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9V0VCX1JUQwogUlRD
UGVlckNvbm5lY3Rpb25JY2VFdmVudCBjb25kaXRpb25hbD1XRUJfUlRDCiBSVENUcmFja0V2ZW50
IGNvbmRpdGlvbmFsPVdFQl9SVEMKK1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudAorU3BlZWNo
UmVjb2duaXRpb25FdmVudAogU3BlZWNoU3ludGhlc2lzRXZlbnQgY29uZGl0aW9uYWw9U1BFRUNI
X1NZTlRIRVNJUwogV2ViR0xDb250ZXh0RXZlbnQgY29uZGl0aW9uYWw9V0VCR0wKIFN0b3JhZ2VF
dmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5p
biBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggMzAxNzEw
MDQ0ZmYxM2ExNGMwMjI4ZGEzODkwMmQzZTdkMzM3N2MxMi4uYTlkYTk0NTI4ZjFiNDBmY2JkZTg5
ZmEwYzU0ZTJlZGYxOTg5ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluCkBAIC00NCw2ICs0NCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBjb25kaXRp
b25hbD1TRVJWSUNFX1dPUktFUgogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBjb25kaXRpb25h
bD1TRVJWSUNFX1dPUktFUgogU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQog
U291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK1NwZWVjaFJlY29nbml0
aW9uCiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJ
UwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9
VklERU8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGViYTVkYTgwMWEyN2ZmOTliMDY3NzEwMzUx
ZWIyNDY4ZmE2OTQwMGIuLjdlYzUwNDY0NTM3MzVjMjUyMjMyZDI3MTU4NDRlODQ4N2E3YzI1MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjg5LDYgKzI4OSw3IEBACiAjZGVmaW5lIFdlYktp
dE1lZGlhUmVjb3JkZXJFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlhUmVjb3JkZXJF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRp
ZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRDb250YWN0UGlja2VyQVBJRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRDb250YWN0UGlja2VyQVBJRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0U3Bl
ZWNoUmVjb2duaXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNwZWVjaFJlY29nbml0
aW9uRW5hYmxlZCIKIAogLy8gVGhlIHByZWZlcmVuY2Uga2V5cyBiZWxvdyB0aGlzIHBvaW50IGFy
ZSBkZXByZWNhdGVkIGFuZCBoYXZlIG5vIGVmZmVjdC4gVGhleSBzaG91bGQKIC8vIGJlIHJlbW92
ZWQgd2hlbiBpdCBpcyBjb25zaWRlcmVkIHNhZmUgdG8gZG8gc28uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAyYTdlOGU0Yjdl
NDU0MjFjNjBlNjU2NjQ3YmMzM2FmOGI2NzJlN2U4Li45YTFjNGUwNGQ3ZmY4NzFmYTBiMTNmMWU0
NGIzYTA0MDVlMjMzMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTMzNzUsNiArMzM3NSwxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRDU1NJbmRpdmlkdWFsVHJhbnNmb3JtUHJvcGVydGllc0VuYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClfc3BlZWNoUmVjb2duaXRpb25FbmFibGVkCit7Cisg
ICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U3BlZWNoUmVjb2duaXRpb25F
bmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpX3NldFNwZWVjaFJlY29nbml0aW9u
RW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktl
eTpXZWJLaXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVPYnNvbGV0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCmluZGV4IDliYzEwY2E3MjUxMDM1N2I3ZGY2ZGM1ZmExNjRmOGE3ODA5OGIw
MDkuLjBmZDQ1YjgzMzc5MzAyMjRkY2VmYTU4NjY5MzBhNzRmMDYwNTg3ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaApAQCAtMzQ4LDYgKzM0OCw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXND
YWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVJlY29yZGVyRW5hYmxlZDopIEJPT0wgX21l
ZGlhUmVjb3JkZXJFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTSW5kaXZp
ZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgY29udGFjdFBpY2tlckFQSUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQ6KSBCT09MIF9zcGVlY2hSZWNvZ25pdGlvbkVu
YWJsZWQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGVEZXBy
ZWNhdGVkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGQxZGZmOGQ5ZmNjZTRlMTEwNDgzNTMxMDU2OGVjZDQ2NWI0MmIxMGQuLmZhZWQyYjQ4NTc5
ZGUxNTIxZGZjOGVjZTIwNjU1YzUyZGQ3OTM3MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0yMCAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3R1YnMgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUwNzI3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0
dXJlcyk6CisKIDIwMjAtMTAtMjAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgcmVwb3J0LW5vbi1pbmNsdXNpdmUtbGFuZ3VhZ2UgaWdub3JlIGF1
dG9pbnN0YWxsZWQgZGlyZWN0b3JpZXMgYW5kIGNlcnRhaW4gZmlsZSB0eXBlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGE2YWFiNzkwNTg5NzRlY2Nl
YzA1N2E2ODI1N2EwMzg5NzI0NzczYjkuLjE2ZmZiZjI1MDZmZDcwMWJhNGM5ZGZiN2Y2NmY3Njhm
NDkwZTg4NjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
QEAgLTg0Miw2ICs4NDIsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJl
cyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNldEFzcGVj
dFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVu
Y2VzIHNldENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVy
ZW5jZXMgc2V0QXVkaW9Xb3JrbGV0RW5hYmxlZDpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBfc2V0
U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOllFU107CiAKICAgICBmb3IgKFdlYkZlYXR1cmUqIGZl
YXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKICAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiTWVkaWFTZXNzaW9uRW5hYmxlZCJdKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY4MjU5MWE5N2VmMzI3NjM0ZjgxODNlNDc5YTRjZjNmMTgwYjA2ODcuLjdiZjRlYjQwZTQ5
OGJmMWIxNzVlYjMzYjIwY2NhZmQ5YjZlZDc2MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0xMC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3R1YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc3ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzUw
NzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0yMCAgVHJ1aXR0IFNhdmVs
bCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbnMgZnJv
bSBiaWctc3VyIHNlbnNlIGl0IGlzIG5vdCBuZWVkZWQgYWZ0ZXIgcjI2ODY4MwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMWM1NmM2ZmQxOWE2ZjliYTMzMWM5YzgyN2UwN2IxOTU2
NjFhYWQ5NC4uZjU0YWYyMmUyMWY5ZGViNWQ0NWRjYjNhN2I5Yjc2ZTA4MTAwZTRjMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMjAgIFNp
aHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBT
cGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3NzgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNz
LndpbmRvdy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMjAgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA8Zm9yZ2l2aW5nLXNlbGVjdG9yLWxp
c3Q+IGZvciA6aXMvOndoZXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoUmVjb2duaXRpb24tYmFzaWNzLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1iYXNpY3MuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDdkZDZhOGE1NjAwMWUyNDc3N2ViYjVmMzlhNWNkNjRmNzBmYmQxZTMuLjBjOGI2
ODQzMjFmZmU4MmRmODBiN2ZiZTMzNmNlY2E2OTFhOGEwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNv
Z25pdGlvbi1iYXNpY3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hSZWNvZ25pdGlvbi1i
YXNpY3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGJhc2ljcyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbgor
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBiYXNpY3MgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ3JlY28uZ3JhbW1hcnMubGVuZ3RoJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5k
ZXggMWNmNDczYTkyYzBkMDE5MjU5MDNmOGMxZDJhZGQwZTU3OTFlNGUwOS4uMWE4MWRhY2M3NWJi
NzQ5MmI1MGQyZTA2OGYxMTk3YzNjZmYwZjBmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NwZWVjaC1hcGkvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMSw5
MyArMTEsOTMgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlv
bkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJm
YWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVy
dHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBncmFtbWFycyBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIGxhbmcgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBjb250aW51b3VzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgaW50ZXJpbVJlc3VsdHMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBtYXhBbHRlcm5hdGl2ZXMgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdGFydCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RvcCgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBvcGVyYXRpb24gYWJvcnQoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxm
IGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQg
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9zdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhw
ZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRzdGFydCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
biIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc3BlZWNoc3RhcnQgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgbWlzc2luZwot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uc291bmRl
bmQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmF1
ZGlvZW5kIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b25yZXN1bHQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBvbm5vbWF0Y2ggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbiIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBvbmVycm9yIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgb25zdGFydCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIG9uZW5kIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb24iIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBhc3NlcnRfZXF1YWxzOiBVbmV4
cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hS
ZWNvZ25pdGlvbiIKLUZBSUwgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlv
bigpIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBv
YmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0
IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZ3JhbW1hcnMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibGFuZyIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9i
amVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJjb250aW51b3VzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVj
dGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNv
Z25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVj
b2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImludGVyaW1SZXN1bHRzIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2
YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgIm1heEFsdGVybmF0aXZlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBl
Y3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGFydCgp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInN0b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBl
Y3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFj
ZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhYm9ydCgp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlv
biB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZB
SUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9uYXVkaW9zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
bnNvdW5kc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0
ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290
IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29n
bml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNv
Z25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hzdGFydCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFs
dWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJv
cjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbnNwZWVjaGVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFs
czogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBu
dWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTog
U3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3
IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnNvdW5kZW5kIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3
aGVuIGV2YWx1YXRpbmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm9uYXVkaW9lbmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2Vy
dF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25yZXN1
bHQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0
aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9uIgot
RkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRpbmcgb2JqZWN0
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBTcGVlY2hSZWNvZ25pdGlvbiIKLUZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9u
ZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhj
ZXB0aW9uIHdoZW4gZXZhbHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVj
dCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNwZWVjaFJlY29nbml0aW9u
IgotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlv
bigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25zdGFydCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVj
dCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24iCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uIGlu
dGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
bmVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNl
cHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0
ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU3BlZWNoUmVjb2duaXRpb24i
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2lu
ZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
U3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXJyb3JF
dmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2Vz
IG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBleHBl
Y3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IiBtaXNzaW5nCi1GQUlM
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1p
c3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGlu
dGVyZmFjZTogYXR0cmlidXRlIGVycm9yIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgZXhwZWN0
ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCIgbWlzc2luZwotRkFJTCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWVzc2FnZSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkVycm9yRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIg
ZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcK
LUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgbWlz
c2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogYXR0cmli
dXRlIHRyYW5zY3JpcHQgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlIiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2Ugb2JqZWN0
IGxlbmd0aCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGlu
dGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9u
UmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0IiBleHBlY3Rl
ZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIG1pc3NpbmcKLUZBSUwgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBvcGVyYXRpb24gaXRlbSh1bnNpZ25lZCBsb25n
KSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFj
ZTogYXR0cmlidXRlIGlzRmluYWwgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHQiIGV4cGVjdGVkIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIGV4cGVjdGVkIHByb3BlcnR5
ICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIg
bWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5n
Ci1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBs
ZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0
eSAiU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBpdGVtKHVuc2lnbmVkIGxvbmcpIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29n
bml0aW9uUmVzdWx0TGlzdCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9w
cm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRp
b25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIG1pc3Np
bmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVl
Y2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25F
dmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoUmVj
b2duaXRpb25FdmVudCIgbWlzc2luZwotRkFJTCBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
IlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3Qn
cyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCi1GQUlMIFNwZWVjaFJlY29n
bml0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5IGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0
aW9uRXZlbnQiIGV4cGVjdGVkIHByb3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNz
aW5nCi1GQUlMIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVz
dWx0SW5kZXggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiU3BlZWNoUmVjb2duaXRpb25FdmVudCIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaFJl
Y29nbml0aW9uRXZlbnQiIG1pc3NpbmcKLUZBSUwgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSByZXN1bHRzIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIlNwZWVjaFJlY29nbml0aW9uRXZlbnQiIGV4cGVjdGVkIHBy
b3BlcnR5ICJTcGVlY2hSZWNvZ25pdGlvbkV2ZW50IiBtaXNzaW5nCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BB
U1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNv
bnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBA
dW5zY29wYWJsZXMgcHJvcGVydHkKK0ZBSUwgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgZ3JhbW1hcnMgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJncmFtbWFycyIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGFuZworUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb250aW51b3VzCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGludGVyaW1SZXN1bHRzCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG1heEFsdGVybmF0aXZlcworUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdGFydCgpCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHN0b3AoKQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhYm9ydCgpCitQQVNTIFNwZWVjaFJlY29nbml0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNvdW5kc3RhcnQKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25zcGVlY2hzdGFydAorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNwZWVjaGVuZAorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnNvdW5kZW5kCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYXVkaW9lbmQKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25yZXN1bHQKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25ub21hdGNoCitQQVNTIFNwZWVjaFJlY29nbml0aW9u
IGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgb25zdGFydAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBvbmVuZAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbiBtdXN0IGJlIHByaW1h
cnkgaW50ZXJmYWNlIG9mIG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpCitQQVNTIFN0cmluZ2lmaWNh
dGlvbiBvZiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKQorRkFJTCBTcGVlY2hSZWNvZ25pdGlvbiBp
bnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Z3JhbW1hcnMiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
ImdyYW1tYXJzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJsYW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlv
biBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY29udGludW91cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVjb2duaXRp
b24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImludGVyaW1SZXN1bHRzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVlY2hSZWNv
Z25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAibWF4QWx0ZXJuYXRpdmVzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBTcGVl
Y2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAic3RhcnQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInN0b3AoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNoUmVj
b2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFib3J0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJlY29n
bml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbmF1ZGlvc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVjaFJl
Y29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbnNvdW5kc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNwZWVj
aFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbnNwZWVjaHN0YXJ0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBT
cGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAib25zcGVlY2hlbmQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNT
IFNwZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvbnNvdW5kZW5kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25hdWRpb2VuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BB
U1MgU3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9ucmVzdWx0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25ub21hdGNoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFT
UyBTcGVlY2hSZWNvZ25pdGlvbiBpbnRlcmZhY2U6IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25lcnJvciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb24gaW50ZXJmYWNlOiBuZXcgU3BlZWNoUmVjb2duaXRpb24oKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgIm9uc3RhcnQiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uIGludGVyZmFjZTogbmV3IFNwZWVjaFJlY29nbml0aW9uKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvbmVuZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25FcnJvckV2ZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
RXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZXJyb3IKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25F
cnJvckV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIG1lc3NhZ2UKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zY3JpcHQKK1BBU1MgU3BlZWNoUmVjb2du
aXRpb25BbHRlcm5hdGl2ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb25maWRlbmNlCitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNl
IG9iamVjdCBuYW1lCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNT
IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMg
cHJvcGVydHkKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50ZXJmYWNlOiBhdHRyaWJ1
dGUgbGVuZ3RoCitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGludGVyZmFjZTogb3BlcmF0
aW9uIGl0ZW0odW5zaWduZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgaXNGaW5hbAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZSBvYmplY3QgbmFt
ZQorUEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQor
UEFTUyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5CitQQVNTIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBsZW5ndGgKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0IGludGVyZmFj
ZTogb3BlcmF0aW9uIGl0ZW0odW5zaWduZWQgbG9uZykKK1BBU1MgU3BlZWNoUmVjb2duaXRpb25F
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CitQQVNTIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
K1BBU1MgU3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1Mg
U3BlZWNoUmVjb2duaXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBTcGVlY2hSZWNvZ25p
dGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBTcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHJlc3VsdEluZGV4CitQQVNTIFNw
ZWVjaFJlY29nbml0aW9uRXZlbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVzdWx0cwogRkFJTCBT
cGVlY2hHcmFtbWFyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgZXhwZWN0ZWQgcHJvcGVydHkgIlNwZWVjaEdyYW1tYXIi
IG1pc3NpbmcKIEZBSUwgU3BlZWNoR3JhbW1hciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hH
cmFtbWFyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlzc2luZwogRkFJTCBT
cGVlY2hHcmFtbWFyIGludGVyZmFjZSBvYmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBz
ZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTcGVlY2hHcmFtbWFyIiBleHBlY3RlZCBw
cm9wZXJ0eSAiU3BlZWNoR3JhbW1hciIgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAyOTBhM2Y5ZWIxYzEyOTg5ODMxZTE0YzM3OWQ1NzA0OWNk
MDhlYjczLi41MDUwNDE0ZDAwZGNlMWMyYTRhY2M3YTUwMmNlOGI2ZTRhZDU0ZTM3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCB3
ZWJraXQub3JnL2IvMTgxOTY0IGZhc3QvdGV4dC9tYWMvc2VsZWN0LWNoYXJhY3Rlci1iZWZvcmUt
emVyby13aWR0aC1qb2luZXIuaHRtbAogcG9pbnRlcmV2ZW50cy9tb3VzZSBbIFBhc3MgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgUGFzcyBdCiAKK2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaSBbIFBhc3MgXQorCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBk
aXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411943</attachid>
            <date>2020-10-20 17:41:04 -0700</date>
            <delta_ts>2020-10-20 17:49:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217780-20201020174103.patch</filename>
            <type>text/plain</type>
            <size>2454</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNhNDU2ZDdjNjMyNzJjNDg1OGVlZGM0
YzEyNzNlNjFkYjk5ZDdjYjguLmYzYzRhNWJiMDQ3MzA3MzkyNGI2NzhlOWQwNGRkM2EwODQ1NDk2
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorMjAyMC0xMC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjY4NzYy
LCB3aGljaCBzZXRzIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIGJ5IG1pc3Rha2UuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoKKwogMjAyMC0xMC0yMCAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3R1YnMgZm9yIFNwZWVjaFJlY29nbml0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMGQ0NmRkZDI2ZjYxMmU0ZDgzMTA3OGQxZWQ4MzNkMTcyN2ZhNTJh
Zi4uMDMxYzQ3YTA3ODIxM2MzZGUxY2VmOTM2OGI0MTExYjI2ODkwMjVjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNoUmVjb2duaXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc4MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaDoKKwogMjAyMC0xMC0yMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdlIFdvcmtlclNj
cmlwdENvbnRyb2xsZXIgYW5kIFdvcmtsZXRTY3JpcHRDb250cm9sbGVyIGludG8gV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FbmFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKaW5kZXggMGI3Mzhk
MzhkYThjNjhkNWFiZmJhNzI4NmRjYmMzNGNiZTdlNDdiOC4uZTIyMjk4NzViNDc3YjFjNmJhYmJj
NWZlZGQ5N2NhNTcyOTFkM2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCkBAIC00NDUsMTAg
KzQ0NSw2IEBACiAjZGVmaW5lIEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIDAKICNlbmRpZgogCi0j
aWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpCi0jZGVmaW5lIEVOQUJMRV9TUEVF
Q0hfU1lOVEhFU0lTIDEKLSNlbmRpZgotCiAjaWYgIWRlZmluZWQoRU5BQkxFX1NQRUVDSF9TWU5U
SEVTSVMpCiAjZGVmaW5lIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTIDAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1
bHRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaAppbmRleCA2YTQ5YjUyOWZiMTk3ZGUxZWU4Nzc2ZTM0ZTM4ZTkxNmYzYWUx
Zjk3Li42OGZmNGI0M2JkNzcyNGIxMGJkYmFhYWNmMDNkMGYxNGVkZDcwMDc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBSZWY8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdD4+JiYpOwogCi0gICAgYm9vbCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xp
c3Quc2l6ZSgpOyB9CisgICAgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2xpc3Quc2l6ZSgpOyB9CiAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQqIGl0ZW0odWludDY0
X3QgaW5kZXgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGQoU3BlZWNoUmVjb2duaXRpb25SZXN1bHQm
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411944</attachid>
            <date>2020-10-20 17:50:00 -0700</date>
            <delta_ts>2020-10-20 18:40:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217780-20201020174959.patch</filename>
            <type>text/plain</type>
            <size>2564</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNhNDU2ZDdjNjMyNzJjNDg1OGVlZGM0
YzEyNzNlNjFkYjk5ZDdjYjguLmRlNDI3YjYxMDI3MGEwMzM3Y2E2ZTI4YWM5ZWE0NDA2MzY4ZWYy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN0dWJzIGZvciBTcGVlY2hSZWNvZ25pdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM1MDcyNz4KKworICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeCBhZnRlciByMjY4NzYyLCB3aGljaCBzZXRzIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
IGJ5IG1pc3Rha2UuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoKKwogMjAyMC0x
MC0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3R1
YnMgZm9yIFNwZWVjaFJlY29nbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ0NmRkZDI2ZjYxMmU0ZDgz
MTA3OGQxZWQ4MzNkMTcyN2ZhNTJhZi4uYTE5NDNiNjVkMjgxOWU1MzY4OTAwYTAyOWI4NTg4MmUy
YWM0YzY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTIwICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHVicyBmb3IgU3BlZWNo
UmVjb2duaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzc4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzNTA3Mjc+CisKKyAgICAgICAg
VW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI2ODc2Mi4KKworICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oOgorCiAyMDIwLTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgV29ya2VyU2NyaXB0
Q29udHJvbGxlciBhbmQgV29ya2xldFNjcmlwdENvbnRyb2xsZXIgaW50byBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCAwYjczOGQzOGRh
OGM2OGQ1YWJmYmE3Mjg2ZGNiYzM0Y2JlN2U0N2I4Li5lMjIyOTg3NWI0NzdiMWM2YmFiYmM1ZmVk
ZDk3Y2E1NzI5MWQzYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTQ0NSwxMCArNDQ1
LDYgQEAKICNkZWZpbmUgRU5BQkxFX1NNT09USF9TQ1JPTExJTkcgMAogI2VuZGlmCiAKLSNpZiAh
ZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykKLSNkZWZpbmUgRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMgMQotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykKICNkZWZpbmUgRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgMAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCmluZGV4IDZhNDliNTI5ZmIxOTdkZTFlZTg3NzZlMzRlMzhlOTE2ZjNhZTFmOTcu
LjY4ZmY0YjQzYmQ3NzI0YjEwYmRiYWFhY2YwM2QwZjE0ZWRkNzAwNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0TGlzdD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFJlZjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q+IGNyZWF0ZShWZWN0b3I8UmVmPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0Pj4mJik7CiAKLSAgICBib29sIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5z
aXplKCk7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlz
dC5zaXplKCk7IH0KICAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCogaXRlbSh1aW50NjRfdCBp
bmRleCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZChTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>