<?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>92897</bug_id>
          
          <creation_ts>2012-08-01 12:09:36 -0700</creation_ts>
          <short_desc>IndexedDB: Frontend and plumbing for integer versions</short_desc>
          <delta_ts>2012-08-21 15:27:18 -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>WebCore Misc.</component>
          <version>528+ (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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92560</dependson>
    
    <dependson>92883</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684444</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 12:09:36 -0700</bug_when>
    <thetext>IndexedDB: Frontend and plumbing for integer versions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684452</commentid>
    <comment_count>1</comment_count>
      <attachid>155858</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 12:16:25 -0700</bug_when>
    <thetext>Created attachment 155858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684562</commentid>
    <comment_count>2</comment_count>
      <attachid>155881</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 14:03:01 -0700</bug_when>
    <thetext>Created attachment 155881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684564</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 14:05:44 -0700</bug_when>
    <thetext>Josh, Alec, could you look at this?

This turns on integer versions in the front end.  This is mostly plumbing, but there are a few tricky bits.  E.g. not creating two IDBDatabaseBackendProxy objects for the same database.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684578</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-01 14:26:49 -0700</bug_when>
    <thetext>Oh, and after this patch, we should be close enough to remove the prefix.  There are still a few FAILs in the output, but nothing too serious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695473</commentid>
    <comment_count>5</comment_count>
      <attachid>158433</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-14 16:06:26 -0700</bug_when>
    <thetext>Created attachment 158433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695515</commentid>
    <comment_count>6</comment_count>
      <attachid>158438</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-14 16:21:48 -0700</bug_when>
    <thetext>Created attachment 158438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695533</commentid>
    <comment_count>7</comment_count>
      <attachid>158443</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-14 16:37:18 -0700</bug_when>
    <thetext>Created attachment 158443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695560</commentid>
    <comment_count>8</comment_count>
      <attachid>158433</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-14 17:01:19 -0700</bug_when>
    <thetext>Comment on attachment 158433
Patch

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

First batch of comments.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:314
&gt; +    enqueueEvent(IDBUpgradeNeededEvent::create(existingVersion, requestedVersion, eventNames().versionchangeEvent));

Just checking - this is using IDBUpgradeNeededEvent for its (oldversion/newversion) payload; it may appear to script as an Event.type = &quot;versionchange&quot; (e.g. here) or an Event.type = &quot;upgradeneeded&quot;?

&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

Date for new file: 2012

&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:63
&gt; +    ASSERT(!m_errorCode &amp;&amp; m_errorMessage.isNull() &amp;&amp; !m_result);

Call to shouldEnqueueEvent() here?

&gt; Source/WebCore/Modules/indexeddb/IDBRequest.cpp:286
&gt; +        idbDatabase-&gt;registerFrontendCallbacks();

The registerFrontendCallbacks() call is in both the if and else paths, factor out?

&gt; Source/WebCore/Modules/indexeddb/IDBRequest.cpp:527
&gt; +    ASSERT_WITH_MESSAGE(m_readyState == PENDING || m_didFireUpgradeNeededEvent, &quot;When queueing event %s, m_readyState was %d&quot;, event-&gt;type().string().utf8().data(), m_readyState);

This is odd. Is m_readyState not PENDING between &quot;upgradeneeded&quot; and success? I would have assumed that like &quot;blocked&quot;, the IDBRequest doesn&apos;t flip to &quot;done&quot; until the &quot;success&quot; fires, in which case this isn&apos;t necessary. (But code is needed to say &quot;if upgradeneeded, don&apos;t set done because we&apos;ll fire again&quot;. That would also eliminate the need to override shouldEnqueueEvent()

Hrm... it looks like the spec doesn&apos;t actually specify when the &quot;done flag&quot; should be set for an IDBOpenDBRequest - bleah.

&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:106
&gt; +    void clearTransactionProperty();

Naming nit: Maybe just clearTransaction()?

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:387
&gt; +    // FIXME: Try to construct a test where |this| outlives openDBRequest and we

Is clearing the request-&gt;transaction reference out required by the spec?

&gt; Source/WebCore/Modules/indexeddb/IDBUpgradeNeededEvent.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

Year for new file: 2012.

&gt; Source/WebCore/Modules/indexeddb/IDBUpgradeNeededEvent.h:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

Year for new file: 2012.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695615</commentid>
    <comment_count>9</comment_count>
      <attachid>158433</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-14 18:08:13 -0700</bug_when>
    <thetext>Comment on attachment 158433
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:314
&gt;&gt; +    enqueueEvent(IDBUpgradeNeededEvent::create(existingVersion, requestedVersion, eventNames().versionchangeEvent));
&gt; 
&gt; Just checking - this is using IDBUpgradeNeededEvent for its (oldversion/newversion) payload; it may appear to script as an Event.type = &quot;versionchange&quot; (e.g. here) or an Event.type = &quot;upgradeneeded&quot;?

event.type will yield &quot;versionchange&quot; but String(event) will yield &quot;[object IDBUpgradeNeededEvent]&quot;.  I&apos;m not sure how important it is to make String(event) return &quot;[object IDBVersionChangeEvent]&quot;.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:2
&gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; 
&gt; Date for new file: 2012

done.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp:63
&gt;&gt; +    ASSERT(!m_errorCode &amp;&amp; m_errorMessage.isNull() &amp;&amp; !m_result);
&gt; 
&gt; Call to shouldEnqueueEvent() here?

Done, thanks.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.cpp:286
&gt;&gt; +        idbDatabase-&gt;registerFrontendCallbacks();
&gt; 
&gt; The registerFrontendCallbacks() call is in both the if and else paths, factor out?

Done.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.cpp:527
&gt;&gt; +    ASSERT_WITH_MESSAGE(m_readyState == PENDING || m_didFireUpgradeNeededEvent, &quot;When queueing event %s, m_readyState was %d&quot;, event-&gt;type().string().utf8().data(), m_readyState);
&gt; 
&gt; This is odd. Is m_readyState not PENDING between &quot;upgradeneeded&quot; and success? I would have assumed that like &quot;blocked&quot;, the IDBRequest doesn&apos;t flip to &quot;done&quot; until the &quot;success&quot; fires, in which case this isn&apos;t necessary. (But code is needed to say &quot;if upgradeneeded, don&apos;t set done because we&apos;ll fire again&quot;. That would also eliminate the need to override shouldEnqueueEvent()
&gt; 
&gt; Hrm... it looks like the spec doesn&apos;t actually specify when the &quot;done flag&quot; should be set for an IDBOpenDBRequest - bleah.

4.8.9.3 is
Fire a upgradeneeded event targeted at request. The event must use the IDBVersionChangeEvent interface and have the oldVersion property set to old version and have the newVersion property set to version. The readyState on the request is set to &quot;done&quot;.

I interpreted the last sentence to mean that the done flag should be set to true when upgradeneeded is fired. Indeed, request.result is supposed to be available to the upgradeneeded handler. There&apos;s nothing to indicate that it should be reverted back to false, so I&apos;m guessing it&apos;s supposed to stay true. I haven&apos;t checked FF though.

An additional wrinkle is that a complete event is fired at the version change transaction between upgradeneeded and success. The availability of request.result when that event is handled needs to be considered.  In this patch, clearTransactionProperty sets readyState = PENDING after complete is dispatched, just to avoid more uses of m_didFireUpgradeNeededEvent.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:106
&gt;&gt; +    void clearTransactionProperty();
&gt; 
&gt; Naming nit: Maybe just clearTransaction()?

Because this function did more than clear the transaction (it also resets readyState), I changed it to transactionDidDispatchCompleteOrAbort. Even less wieldy. Perhaps I should change it back to clearTransaction, not clear readyState, and add more m_readyState == PENDING || m_didFireUpgradeNeededEvent in place of m_readyState == PENDING.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:387
&gt;&gt; +    // FIXME: Try to construct a test where |this| outlives openDBRequest and we
&gt; 
&gt; Is clearing the request-&gt;transaction reference out required by the spec?

Yeah, the last step in &apos;&quot;versionchange&quot; transaction steps&apos; (4.8.12, mentioned in the changelog) is:

When the transaction is finished, if these steps are run asynchronously, immediately set request&apos;s transaction property to null. This must be done in the same task as the task firing the complete or abort event, but after those events has been fired.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBUpgradeNeededEvent.cpp:2
&gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; 
&gt; Year for new file: 2012.

done.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBUpgradeNeededEvent.h:2
&gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; 
&gt; Year for new file: 2012.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695617</commentid>
    <comment_count>10</comment_count>
      <attachid>158467</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-14 18:11:02 -0700</bug_when>
    <thetext>Created attachment 158467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696199</commentid>
    <comment_count>11</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-15 11:33:37 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; event.type will yield &quot;versionchange&quot; but String(event) will yield &quot;[object IDBUpgradeNeededEvent]&quot;.  I&apos;m not sure how important it is to make String(event) return &quot;[object IDBVersionChangeEvent]&quot;.

IMHO we can defer fixing until we remove setVersion().

Does the WebKitIDL attribute [InterfaceName=IDBVersionChangeEvent] specified on the interface happen to &quot;just work&quot;?
 
&gt; &gt; Hrm... it looks like the spec doesn&apos;t actually specify when the &quot;done flag&quot; should be set for an IDBOpenDBRequest - bleah.
&gt; 
&gt; 4.8.9.3 is
&gt; Fire a upgradeneeded event targeted at request. The event must use the IDBVersionChangeEvent interface and have the oldVersion property set to old version and have the newVersion property set to version. The readyState on the request is set to &quot;done&quot;.

Thanks, missed that.
 
&gt; I interpreted the last sentence to mean that the done flag should be set to true when upgradeneeded is fired. 

Agreed.

&gt; Indeed, request.result is supposed to be available to the upgradeneeded handler. 

Yeah, which explains it.

&gt; There&apos;s nothing to indicate that it should be reverted back to false, so I&apos;m guessing it&apos;s supposed to stay true. I haven&apos;t checked FF though.

I would agree that staying true makes sense...
 
&gt; An additional wrinkle is that a complete event is fired at the version change transaction between upgradeneeded and success. The availability of request.result when that event is handled needs to be considered.  In this patch, clearTransactionProperty sets readyState = PENDING after complete is dispatched, just to avoid more uses of m_didFireUpgradeNeededEvent.

Bleah, messy whatever way we go. Bring the ambiguity up on the spec list?

It would be nice if we could flip it back to &quot;pending&quot; before enqueuing the success, since that simplifies the state machine of IDBRequest.

It looks like (in the latest patch) the m_didFireUpgradeNeededEvent flag is used only for asserting? Nice if we can keep it like that (although I hate tracking debug-only state).

&gt; &gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:106
&gt; &gt;&gt; +    void clearTransactionProperty();
&gt; &gt; 
&gt; &gt; Naming nit: Maybe just clearTransaction()?
&gt; 
&gt; Because this function did more than clear the transaction (it also resets readyState), I changed it to transactionDidDispatchCompleteOrAbort.

FWIW the internal state enum in IDBTransaction.h calls this state &quot;Finished&quot;, if that helps naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696426</commentid>
    <comment_count>12</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-15 15:24:08 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; event.type will yield &quot;versionchange&quot; but String(event) will yield &quot;[object IDBUpgradeNeededEvent]&quot;.  I&apos;m not sure how important it is to make String(event) return &quot;[object IDBVersionChangeEvent]&quot;.
&gt; 
&gt; Does the WebKitIDL attribute [InterfaceName=IDBVersionChangeEvent] specified on the interface happen to &quot;just work&quot;?

Seems to. Good stuff. Thanks.

&gt; &gt; An additional wrinkle is that a complete event is fired at the version change transaction between upgradeneeded and success. The availability of request.result when that event is handled needs to be considered.  In this patch, clearTransactionProperty sets readyState = PENDING after complete is dispatched, just to avoid more uses of m_didFireUpgradeNeededEvent.
&gt; 
&gt; Bleah, messy whatever way we go. Bring the ambiguity up on the spec list?

By ambiguity, you mean the value of readyState when the &quot;complete&quot; event is handled?

&gt; 
&gt; It would be nice if we could flip it back to &quot;pending&quot; before enqueuing the success, since that simplifies the state machine of IDBRequest.

We currently flip back to pending before *dispatching* the success event, but not before enqueueing it.  Flipping back to pending before enqueuing the success event would mean that the &quot;complete&quot; handler would not be able to access request.result, correct?

&gt; It looks like (in the latest patch) the m_didFireUpgradeNeededEvent flag is used only for asserting? Nice if we can keep it like that (although I hate tracking debug-only state).

Yeah, it&apos;s just used in ASSERTs.

&gt; 
&gt; &gt; &gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:106
&gt; &gt; &gt;&gt; +    void clearTransactionProperty();
&gt; &gt; &gt; 
&gt; &gt; &gt; Naming nit: Maybe just clearTransaction()?
&gt; &gt; 
&gt; &gt; Because this function did more than clear the transaction (it also resets readyState), I changed it to transactionDidDispatchCompleteOrAbort.
&gt; 
&gt; FWIW the internal state enum in IDBTransaction.h calls this state &quot;Finished&quot;, if that helps naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696433</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-15 15:29:03 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; 
&gt; By ambiguity, you mean the value of readyState when the &quot;complete&quot; event is handled?

Yes.
 
&gt; &gt; 
&gt; &gt; It would be nice if we could flip it back to &quot;pending&quot; before enqueuing the success, since that simplifies the state machine of IDBRequest.
&gt; 
&gt; We currently flip back to pending before *dispatching* the success event, but not before enqueueing it.  Flipping back to pending before enqueuing the success event would mean that the &quot;complete&quot; handler would not be able to access request.result, correct?

Right, so depends on the discussion of readyState vs. &quot;complete&quot;. Right now the assertions in IDBRequest can say &quot;if you&apos;re going to enqueue or dispatch, you&apos;d better be PENDING&quot;. I wasn&apos;t suggesting changes, just expressing the hope we can keep things simple.

(Given how messy IDBRequest::dispatchEvent is already, we can probably do a cleanup pass after everything is in; expose virtual helper functions that categorize events and what can be done when, etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696611</commentid>
    <comment_count>14</comment_count>
      <attachid>158686</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-15 18:45:22 -0700</bug_when>
    <thetext>Created attachment 158686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696614</commentid>
    <comment_count>15</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-15 18:47:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; &gt;&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:106
&gt; &gt; &gt;&gt; +    void clearTransactionProperty();
&gt; &gt; &gt; 
&gt; &gt; &gt; Naming nit: Maybe just clearTransaction()?
&gt; &gt; 
&gt; &gt; Because this function did more than clear the transaction (it also resets readyState), I changed it to transactionDidDispatchCompleteOrAbort.
&gt; 
&gt; FWIW the internal state enum in IDBTransaction.h calls this state &quot;Finished&quot;, if that helps naming.

I want to preserve the indication that it happens after the events are dispatched.  m_state = Finished happens before the events are dispatched.  Right now the name is transactionDidFinishAndDispatch.  Still ugh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696808</commentid>
    <comment_count>16</comment_count>
      <attachid>158726</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-16 00:06:46 -0700</bug_when>
    <thetext>Created attachment 158726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697737</commentid>
    <comment_count>17</comment_count>
      <attachid>158960</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-16 17:48:46 -0700</bug_when>
    <thetext>Created attachment 158960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697749</commentid>
    <comment_count>18</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-16 18:03:58 -0700</bug_when>
    <thetext>Tony, could you review this?

It&apos;s huge but mostly simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697772</commentid>
    <comment_count>19</comment_count>
      <attachid>158960</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-16 18:23:25 -0700</bug_when>
    <thetext>Comment on attachment 158960
Patch

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

If jsbell is happy, seems fine to me.

&gt; LayoutTests/ChangeLog:11
&gt; +        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
&gt; +        * storage/indexeddb/intversion-and-setversion-expected.txt:
&gt; +        * storage/indexeddb/intversion-blocked-expected.txt:
&gt; +        * storage/indexeddb/intversion-close-between-events-expected.txt:

Nit: Maybe explain some of the changes here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697823</commentid>
    <comment_count>20</comment_count>
      <attachid>158981</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-16 19:33:23 -0700</bug_when>
    <thetext>Created attachment 158981
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697852</commentid>
    <comment_count>21</comment_count>
      <attachid>158981</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 21:21:56 -0700</bug_when>
    <thetext>Comment on attachment 158981
Patch for landing

Clearing flags on attachment: 158981

Committed r125850: &lt;http://trac.webkit.org/changeset/125850&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697853</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-16 21:22:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701183</commentid>
    <comment_count>23</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 15:27:18 -0700</bug_when>
    <thetext>*** Bug 89505 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155858</attachid>
            <date>2012-08-01 12:16:25 -0700</date>
            <delta_ts>2012-08-01 14:02:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120801121607.patch</filename>
            <type>text/plain</type>
            <size>82340</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwNmJhNjM4OGJkNzg0
NWE3NTE4ZDk3YWRjNmUxZTcxOGVhYWI4YS4uY2E1NDhhZWQ2NzNiNDFmMTcxMjhlZmRkZTEwNTAz
MWJmN2Q2NmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA4LTAxICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZy
b250ZW5kIGFuZCBwbHVtYmluZyBmb3IgaW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9m
IHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1m
dW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJGcm9udGVuZENhbGxi
YWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKyAgICAg
ICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZElt
cGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VC
YWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bDo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6Om9wZW4pOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAg
ICAgICAoSURCRmFjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmg6CisgICAg
ICAgIChJREJGYWN0b3J5QmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJP
cGVuREJSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVz
dDo6SURCT3BlbkRCUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0
Ojp+SURCT3BlbkRCUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0
OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
QmxvY2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVO
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElEQk9wZW5EQlJl
cXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRs
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojpj
bGVhclRyYW5zYWN0aW9uUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uQmxv
Y2tlZCk6CisgICAgICAgIChJREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVl
c3Q6OmlzT3BlbkRCUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJ
REJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6c2V0QWN0
aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpJREJV
cGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2
ZW50Ojp+SURCVXBncmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3Jh
ZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om5ld1ZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJVcGdyYWRlTmVlZGVkRXZlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKElEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwuCisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0zMSAgS3dhbmcgWXVsIFNlbyAgPHNreXVs
QGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFJlYWQgdGFnIG5hbWVzIGFuZCBhdHRyaWJ1dGVz
IGZyb20gdGhlIHNhdmVkIHRva2VucyBpbiBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWco
QXRvbWljSFRNTFRva2VuKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2FjMTEwMGQz
ZGQ4ZGI4NDE4MmRhNzhmMDMxYmNmMjNhYWQxYTQ0Ny4uOWI3YmJlMmI1Mzc0ZGU5MGZmODFkMjBj
YmJiZDgxNWFmOGY3YTUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
NSBAQAorMjAxMi0wOC0wMSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgSW5kZXhlZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVy
c2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTky
ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlv
bmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISku
CisKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAg
ICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkp
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpzZXRWZXJzaW9uKToKKyAgICAgICAgKiBz
cmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRh
dGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJ
REJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tl
bmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9w
ZW4pOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJ
REJGYWN0b3J5QmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6OldlYklEQkNhbGxi
YWNrc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6
b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgor
ICAgICAgICAoV2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpXZWJJREJEYXRhYmFzZUlt
cGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpvcGVuKToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAg
ICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZh
Y3RvcnlJbXBsOjpvcGVuKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUltcGwuaDoKKyAg
ICAgICAgKFdlYklEQkZhY3RvcnlJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29y
cnVwdFRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTItMDctMzEgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW0tQW5kcm9p
ZF0gV2Ugc2hvdWxkIGh1ZXJpc3RpY2FsbHkgZGV0ZWN0IGNvbnRlbnQgaW50ZW50cyBvbiB0b3Vj
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CmluZGV4IDVjM2RmY2I2YjU0MmMxYmUwNmIyNDFiNDdjZTliYWNiOWI2NjI5YjQuLjljYWE2YjM4
MzAwNzAwNTI4YzUwZWY3ZTYxNmJiNDU1Y2U2MWJlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgIklEQlVwZ3JhZGVOZWVkZWRFdmVudC5o
IgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIklEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpA
QCAtMjA4LDYgKzIwOSw3IEBAIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElE
QkRhdGFiYXNlOjpzZXRWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAgfQogCiAgICAg
UmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiByZXF1ZXN0ID0gSURCVmVyc2lvbkNoYW5n
ZVJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgdmVyc2lvbik7
CisgICAgQVNTRVJUKG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5zZXRWZXJzaW9uKHZlcnNp
b24sIHJlcXVlc3QsIG1fZGF0YWJhc2VDYWxsYmFja3MsIGVjKTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KQEAgLTMwMSw2ICszMDMsMTcgQEAgdm9pZCBJREJEYXRhYmFzZTo6Y2xvc2VDb25uZWN0
aW9uKCkKICAgICB9CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZShpbnQ2
NF90IGV4aXN0aW5nVmVyc2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQoreworICAgIGlm
IChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2Nsb3NlUGVuZGluZykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKGV4aXN0aW5nVmVy
c2lvbiwgcmVxdWVzdGVkVmVyc2lvbiwgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkp
OworfQorCiB2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKQogewogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCkBAIC0zMTQsNiArMzI3LDcgQEAgdm9pZCBJREJEYXRhYmFzZTo6b25WZXJzaW9u
Q2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZTo6cmVnaXN0
ZXJGcm9udGVuZENhbGxiYWNrcygpCiB7CisgICAgQVNTRVJUKG1fYmFja2VuZCk7CiAgICAgbV9i
YWNrZW5kLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKG1fZGF0YWJhc2VDYWxsYmFja3MpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApp
bmRleCA2NGNiYjMyNmE1ODgzZGNmMzk0NzNjYWExMDk3MjkwNWYzZmU2NzVlLi5kNjljMWJiNmVm
ODBkNGJkMjA4YWI1ODY3OTdmY2Q3ZTE0ZmFlMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgog
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodmVyc2lvbmNoYW5nZSk7CiAKICAg
ICAvLyBJREJEYXRhYmFzZUNhbGxiYWNrcworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFu
Z2UoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZl
cnNpb24pOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmlu
ZGV4IDkzZDIxZjNlYjRhMGIyNDRlZWZjYjY1NWZhODBmZjlkMjhkYTQ3NzIuLjk4ZjJjOWYwNDEw
NWVjOWExMTlkODZlMmM4YjU5OTk0YmU5NDUzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBA
IC00NDMsNyArNDQzLDYgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVj
dGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogCiB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJl
cXVlc3RlZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MpCiB7
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2Fs
bGJhY2tzID0gcHJwQ2FsbGJhY2tzOwogICAgIEFTU0VSVChjYWxsYmFja3MpOwogICAgIGZvciAo
RGF0YWJhc2VDYWxsYmFja3NTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9kYXRhYmFzZUNhbGxi
YWNrc1NldC5iZWdpbigpOyBpdCAhPSBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmVuZCgpOyArK2l0
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmgKaW5kZXggMjIwZGU1MTEzM2Y3N2QxYzE0ZWNiMzMzODkyZjJk
YzZiNjBlYjgzNi4uMGNlYWUyNzA3NmMyNmQ0ZWE5MWIzMjE2NjdiNWRiYmE1NmFmNWRlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuaApAQCAtODIsNiArODIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9h
ZE9iamVjdFN0b3JlcygpOwogICAgIGludDMyX3QgY29ubmVjdGlvbkNvdW50KCk7CiAgICAgdm9p
ZCBwcm9jZXNzUGVuZGluZ0NhbGxzKCk7CisgICAgc3RhdGljIHZvaWQgcHJvY2Vzc1BlbmRpbmdU
YXNrKHZvaWQqIGRiKTsKIAogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlSW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW1wbD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4s
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5jcHAKaW5kZXggMTk0MTJmY2JlNTBhYjQ0YmY1M2RjMDFlMDNkODg1M2UyOGY3YzVmZi4u
ZjcxN2FkYmQ1NTFkNDQyZWJiOGZkOThkZDhhN2NmZDkwZDY5YmNkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuY3BwCkBAIC01Miw2ICs1MiwxMiBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKICAgICAgICAgbV9k
YXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwogfQogCit2b2lkIElEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3QgY3VycmVudFZlcnNpb24sIGlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3sKKyAgICBpZiAobV9kYXRhYmFzZSkKKyAgICAgICAg
bV9kYXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKGN1cnJlbnRWZXJzaW9uLCByZXF1ZXN0ZWRWZXJz
aW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OnVucmVnaXN0ZXJEYXRh
YmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChkYXRhYmFz
ZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGU4
YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2RmYjgyYmU3ZmIuLjA4MGY1YmE4N2JmZDY4MjVj
NTU1ZmM4ZDVkMGY3Zjc2Njc0M2E0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Miw2
ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJz
aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3QgY3VycmVudFZl
cnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0
YWJhc2UoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggY2Y1MmNjMWZlMmIxMzU1YjZjNTRl
ZGNlMjY1ZTBmM2U4YzNhNWU5MS4uYzgzYmEzNjQ1ZGJmNmQzOTgzYzljY2E3ZDdiMzdhYjE1MDc3
MmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0j
aW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVx
dWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsKICAgICAgICAgZWMgPSBOQVRJVkVfVFlQRV9FUlI7
CkBAIC0xMTQsMTEgKzExNCwxNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6
Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUwogICAgIGlmICgh
aXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcyksIDApOwotICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCByZXF1ZXN0LCBj
b250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBh
dGgoY29udGV4dCkpOworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURC
T3BlbkRCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCB2ZXJz
aW9uKTsKKyAgICBtX2JhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lvbiwgcmVxdWVzdCwgY29udGV4
dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNv
bnRleHQpKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUGFzc1JlZlB0cjxJREJPcGVuREJS
ZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIG9w
ZW4oY29udGV4dCwgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBlYyk7
Cit9CisKIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRl
bGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAppbmRleCA0
NjExY2I2YzRmZTgzOTkwYjQ3MjRhNDNiZjA5YzlhNWE5NWQ4ODhkLi4zNjQ1YmI4MWRjN2VlOTY2
OTA1ZGE2NTJjMDY0ZGE3Mzg2ZjY1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJET01T
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKLSNp
bmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTgsNyArNTgsOCBAQCBwdWJsaWM6CiAKICAg
ICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQ
YXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURC
T3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRy
PElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBzaG9y
dCBjbXAoUGFzc1JlZlB0cjxJREJLZXk+IGZpcnN0LCBQYXNzUmVmUHRyPElEQktleT4gc2Vjb25k
LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsCmluZGV4IDAzODllYjJhYWU3ZTEyOTk1NGQ5YWNmMDNhNTlmZmJjYzdm
YmFhY2MuLmJmNzFhMmRkMjVkMWZmOTVlMjY0MzVmNGU0MWYwYzQxYjk3NjcyYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCkBAIC0zMCw3
ICszMCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICBdIElEQkZhY3RvcnkgewogICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1wbGVtZW50ZWRBcz1nZXREYXRhYmFz
ZU5hbWVzXSBJREJSZXF1ZXN0IHdlYmtpdEdldERhdGFiYXNlTmFtZXMoKTsKIAotICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuKGluIERPTVN0
cmluZyBuYW1lKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURC
T3BlbkRCUmVxdWVzdCBvcGVuKGluIERPTVN0cmluZyBuYW1lLCBpbiBbT3B0aW9uYWxdIHVuc2ln
bmVkIGxvbmcgbG9uZyB2ZXJzaW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4
Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJW
ZXJzaW9uQ2hhbmdlUmVxdWVzdCBkZWxldGVEYXRhYmFzZShpbiBET01TdHJpbmcgbmFtZSkKICAg
ICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5j
cHAKaW5kZXggYjk1MThkNTQ1MThkMDEwNGM3OTZjZDBkYTdhNDYyMmE3ZjAzNzM4My4uZTQ0ZGVh
YjQ4MzVkMTNlZjkwMTQ1MTIzMGY3NDM3OGFkNjE1OWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3Bw
CkBAIC0xNTAsMTAgKzE1MCw4IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJGYWN0
b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUoUGFzc1JlZlB0cjxTCiAgICAgcmV0dXJu
IDA7CiB9CiAKLXZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIGRhdGFEaXJlY3RvcnkpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJl
Y3RvcnkpCiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhIHBhcmFtZXRlciBhbmQgcGx1bWIg
dGhyb3VnaCBmcm9tIGphdmFzY3JpcHQuCi0gICAgaW50NjRfdCB2ZXJzaW9uID0gSURCRGF0YWJh
c2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4gPSBwcnBTZWN1cml0eU9yaWdpbjsKICAgICBjb25zdCBTdHJpbmcgdW5pcXVl
SWRlbnRpZmllciA9IGNvbXB1dGVVbmlxdWVJZGVudGlmaWVyKG5hbWUsIHNlY3VyaXR5T3JpZ2lu
LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAppbmRleCBjYTFkMDUyODJhOGM1ZWRmNzY2ZDVlNTU1
MDhmYWUwYTljMDQ4YzY1Li5kMjZmNzQ2ODM0MmFhNmExOGRmY2RlOWJmMTc0MzY0MjI4ZTEwNmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEltcGwuaApAQCAtMjksNyArMjksNiBAQAogI2RlZmluZSBJREJGYWN0b3J5
QmFja2VuZEltcGxfaAogCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC01Nyw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYg
ZmlsZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
ZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYg
bmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHBy
b3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYyMWVhNDcx
OWY2MzY5NDI5Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0NGVhNDhh
Y2Y2NjZmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3Qg
dmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTE4MTQ1ZDA4NjkyZDY4YTE5M2UxYzBkYTk2M2Y5NGJmZDA1NTdi
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZl
bnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJB
bnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQoreworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1
ZXN0PiByZXF1ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJj
ZSwgdmVyc2lvbikpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6OklEQk9wZW5EQlJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+
IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQorICAgIDogSURCUmVxdWVzdChjb250ZXh0LCBzb3Vy
Y2UsIDApCisgICAgLCBtX3ZlcnNpb24odmVyc2lvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVzdWx0
KTsKK30KKworSURCT3BlbkRCUmVxdWVzdDo6fklEQk9wZW5EQlJlcXVlc3QoKQoreworfQorCitj
b25zdCBBdG9taWNTdHJpbmcmIElEQk9wZW5EQlJlcXVlc3Q6OmludGVyZmFjZU5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9ySURCT3BlbkRCUmVxdWVz
dDsKK30KKwordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQoaW50NjRfdCBvbGRWZXJz
aW9uKQoreworICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxs
KCkgJiYgIW1fcmVzdWx0KTsKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50
OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50
KSk7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qg
b2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHBy
cFRyYW5zYWN0aW9uQmFja2VuZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+IHBycERhdGFiYXNlQmFja2VuZCkKK3sKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlKTsKKyAg
ICBBU1NFUlQobV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkpOworICAgIEFTU0VSVCghbV9lcnJvcik7
CisgICAgQVNTRVJUKCFtX3Jlc3VsdCk7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kID0gcHJwRGF0YWJhc2VC
YWNrZW5kOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5z
YWN0aW9uQmFja2VuZCA9IHBycFRyYW5zYWN0aW9uQmFja2VuZDsKKyAgICBSZWZQdHI8SURCRGF0
YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCk7CisKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+
IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRyYW5zYWN0aW9uQmFja2VuZCwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFLCBp
ZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CisgICAgdHJhbnNhY3Rpb25CYWNrZW5kLT5zZXRDYWxs
YmFja3MoZnJvbnRlbmQuZ2V0KCkpOworICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9udGVuZDsKKyAg
ICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CisKKyAg
ICBpZiAob2xkVmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pIHsK
KyAgICAgIC8vIFRoZSBvcGVuIGNhbGwgdGhhdCBjcmVhdGVkIHRoaXMgSURCT3BlbkRCUmVxdWVz
dCB3YXMgdGhlIGZpcnN0IGludGVnZXIKKyAgICAgIC8vIHZlcnNpb24gdGhhdCB0aGlzIGRhdGFi
YXNlIGhhZC4KKyAgICAgIG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0
SW50VmVyc2lvbjsKKyAgICB9CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVk
ZWRFdmVudCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVjNWI4YmNjNjc3MzAzNWE0MTVjYzk0ZjFhMjUzYTRmYjE4NDUxZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCT3BlbkRCUmVxdWVz
dF9oCisjZGVmaW5lIElEQk9wZW5EQlJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisKKyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgSURCT3BlbkRCUmVxdWVzdCA6IHB1YmxpYyBJREJSZXF1ZXN0IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lv
bik7CisgICAgdmlydHVhbCB+SURCT3BlbkRCUmVxdWVzdCgpOworCisgICAgdmlydHVhbCB2b2lk
IG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+KSBPVkVSUklERTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYmxvY2tlZCk7CisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUih1cGdyYWRlbmVlZGVkKTsKKworcHJpdmF0ZToKKyAgICBJREJPcGVu
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291
cmNlLCBpbnQ2NF90IHZlcnNpb24pOworCisgICAgdmlydHVhbCBib29sIGlzT3BlbkRCUmVxdWVz
dCgpIGNvbnN0IE9WRVJSSURFCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBpbnQ2NF90IG1fdmVyc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCT3BlbkRC
UmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjZjNzM1OWEwYTY1ZTY5NWIwODQ1ZGU1
ZjUzNTgzYTZjZDgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgICAgICBFdmVu
dFRhcmdldAorICAgIF0gSURCT3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3QgeworICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9udXBncmFkZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZDI1YzMxMDJmNTk3N2Qx
NDNmMzE5NWUxNDMzMTk4MGFhZTdjNjU4Li42M2ZmMWRkN2M1ZDI0MTU0ZTM4OWQwM2U2MjRjYzgz
YTQ4MTBlYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcApAQCAtNTMsMTMgKzUzLDE0IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
UmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSCiAK
IElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jlc3VsdCgwKQog
ICAgICwgbV9lcnJvckNvZGUoMCkKLSAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fY29u
dGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQorICAg
ICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcpCiAgICAgLCBt
X3JlcXVlc3RBYm9ydGVkKGZhbHNlKQogICAgICwgbV9jdXJzb3JGaW5pc2hlZChmYWxzZSkKLSAg
ICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX2N1cnNvclR5cGUoSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpCiAgICAgLCBtX2N1cnNvckRpcmVj
dGlvbihJREJDdXJzb3I6Ok5FWFQpCiAgICAgLCBtX3BlbmRpbmdDdXJzb3IoMCkKQEAgLTI3Mywx
NSArMjc0LDIxIEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUg
PT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CiAgICAgaWYgKG1fcmVxdWVzdEFi
b3J0ZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJ
TkcpOwotICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkg
JiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBF
TkRJTkcgfHwgaXNPcGVuREJSZXF1ZXN0KCkpOworICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYg
bV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IpOwogICAgIGlmIChtX2NvbnRleHRT
dG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7Ci0gICAgaWRiRGF0YWJhc2UtPnJl
Z2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKLQotICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVh
dGUoaWRiRGF0YWJhc2UucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRh
dGFiYXNlOworICAgIGlmIChtX3Jlc3VsdCkgeworICAgICAgICBpZGJEYXRhYmFzZSA9IG1fcmVz
dWx0LT5pZGJEYXRhYmFzZSgpOworICAgICAgICBBU1NFUlQoaWRiRGF0YWJhc2UpOworICAgICAg
ICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGJhY2tlbmQpOworICAgICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9u
dGVuZENhbGxiYWNrcygpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRh
dGFiYXNlLnJlbGVhc2UoKSk7CisgICAgfQogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNz
RXZlbnQoKSk7CiB9CiAKQEAgLTQyNiwxMyArNDMzLDEyIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIElEQlJlcXVlc3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogYm9vbCBJREJS
ZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIElE
Ql9UUkFDRSgiSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCIpOwotICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8
IGlzT3BlbkRCUmVxdWVzdCgpKTsKICAgICBBU1NFUlQoIW1fY29udGV4dFN0b3BwZWQpOwogICAg
IEFTU0VSVChtX2VucXVldWVkRXZlbnRzLnNpemUoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSA9PSB0aGlzKTsKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUsICJtX3JlYWR5U3RhdGUg
PCBET05FKCVkKSwgd2FzICVkIiwgRE9ORSwgbV9yZWFkeVN0YXRlKTsKLQorICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSB8fCBpc09wZW5EQlJlcXVlc3QoKSwgIldo
ZW4gZGlzcGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMgJWQi
LCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERPTkUsIG1fcmVhZHlTdGF0
ZSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkK
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKIApAQCAtNDYxLDExICs0NjcsMTIgQEAgYm9v
bCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAg
IH0KIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBkaXNwYXRjaGlu
ZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgotICAgIEFTU0VSVChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5i
bG9ja2VkRXZlbnQpOwotICAgIGNvbnN0IGJvb2wgc2V0VHJhbnNhY3Rpb25BY3RpdmUgPSBtX3Ry
YW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQg
fHwgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYgbV9lcnJvckNv
ZGUgIT0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIpKTsKKyAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IHx8IGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQsICJldmVudCB0eXBlIHdhcyAlcyIsIGV2ZW50LT50
eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgY29uc3QgYm9vbCBzZXRUcmFuc2Fj
dGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLnN1Y2Nlc3NFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRl
bmVlZGVkRXZlbnQgfHwgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQg
JiYgbV9lcnJvckNvZGUgIT0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIpKTsK
IAogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkKICAgICAgICAgbV90cmFuc2FjdGlvbi0+
c2V0QWN0aXZlKHRydWUpOworCiAgICAgYm9vbCBkb250UHJldmVudERlZmF1bHQgPSBJREJFdmVu
dERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKICAgICBpZiAoc2V0
VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnNldEFjdGl2ZShmYWxz
ZSk7CkBAIC00OTksNiArNTA2LDEyIEBAIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRp
b25JbkV2ZW50SGFuZGxlcigpCiAgICAgfQogfQogCit2b2lkIElEQlJlcXVlc3Q6OmNsZWFyVHJh
bnNhY3Rpb25Qcm9wZXJ0eSgpCit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lv
bkNoYW5nZSgpKTsKKyAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7Cit9CisKIHZvaWQgSURCUmVx
dWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CkBAIC01
MDYsNyArNTE5LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9
PSBQRU5ESU5HKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA9PSBQRU5E
SU5HIHx8IGlzT3BlbkRCUmVxdWVzdCgpLCAiV2hlbiBxdWV1ZWluZyBldmVudCAlcywgbV9yZWFk
eVN0YXRlIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9y
ZWFkeVN0YXRlKTsKIAogICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmV2ZW50UXVldWUoKTsKICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGE4
MDRjMmJkNWViMWI3MzFhNTE5NzU1ODY4OWFkYjZhNjVlYWJjM2UuLjY3ZGY0ZmJkMjJmN2JjNmFm
NmY0NTZhMDAzZWNmZjk2YWRkYjYzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0
IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1l
bnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAgICB2
aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2
NF90IGV4aXN0aW5nVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8g
QWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNv
bnN0IE9WRVJSSURFOwpAQCAtMTAzLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOyB9CiAgICAgdmlydHVh
bCB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKIAorICAgIHZvaWQgY2xl
YXJUcmFuc2FjdGlvblByb3BlcnR5KCk7CisKICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxJREJDYWxsYmFja3M+OjpyZWY7CiAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURC
Q2FsbGJhY2tzPjo6ZGVyZWY7CiAKQEAgLTExMyw2ICsxMTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dW5zaWduZWQgc2hvcnQgbV9lcnJvckNvZGU7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwog
ICAgIFJlZlB0cjxET01FcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fY29udGV4dFN0b3BwZWQ7
CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogCiBwcml2YXRlOgog
ICAgIC8vIEV2ZW50VGFyZ2V0CkBAIC0xMjMsMTQgKzEyOCwxNiBAQCBwcml2YXRlOgogCiAgICAg
UGFzc1JlZlB0cjxJREJDdXJzb3I+IGdldFJlc3VsdEN1cnNvcigpOwogICAgIHZvaWQgc2V0UmVz
dWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CisgICAgdmlydHVhbCBib29sIGlzT3Bl
bkRCUmVxdWVzdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQog
CiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3VyY2U7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9u
PiBtX3RyYW5zYWN0aW9uOwogCiAgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CiAgICAgYm9v
bCBtX3JlcXVlc3RBYm9ydGVkOyAvLyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVu
IHJlY2VpdmUgYXN5bmMgb25zdWNjZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KICAgICBib29sIG1f
Y3Vyc29yRmluaXNoZWQ7Ci0gICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOwogICAgIFZlY3RvcjxS
ZWZQdHI8RXZlbnQ+ID4gbV9lbnF1ZXVlZEV2ZW50czsKIAogICAgIC8vIE9ubHkgdXNlZCBpZiB0
aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBhIGN1cnNvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA3NjEyMzQ3MDE0MTgz
YzlkYTYxZThkYmFmZTY1ZmEzODU5OTkzNDdlLi40Nzk2YjE0MTFmN2E0NGQzZWRiN2QyZTQxNmY0
NjQwYWFmMmI0OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSURCSW5k
ZXguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCiAjaW5jbHVkZSAiSURCVHJh
Y2luZy5oIgogCkBAIC00Myw3ICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBk
YikKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5l
dyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBiYWNrZW5kLCBtb2RlLCBkYikpKTsKKyAgICBJREJP
cGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0ID0gMDsKKyAgICByZXR1cm4gY3JlYXRlKGNvbnRl
eHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KTsKK30KKworUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
YmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiLCBJREJP
cGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQoreworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlv
bj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRleHQsIGJhY2tl
bmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KSkpOwogICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5k
SWZOZWVkZWQoKTsKICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucmVsZWFzZSgpOwogfQpAQCAtNzks
MTAgKzg2LDExIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFk
V3JpdGVMZWdhY3koKQogfQogCiAKLUlEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0
YWJhc2UqIGRiKQorSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIs
IElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QpCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
Y29udGV4dCwgdGhpcykKICAgICAsIG1fYmFja2VuZChiYWNrZW5kKQogICAgICwgbV9kYXRhYmFz
ZShkYikKKyAgICAsIG1fb3BlbkRCUmVxdWVzdChvcGVuREJSZXF1ZXN0KQogICAgICwgbV9tb2Rl
KG1vZGUpCiAgICAgLCBtX2FjdGl2ZSh0cnVlKQogICAgICwgbV9zdGF0ZShVbnVzZWQpCkBAIC0x
ODIsNyArMTkwLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmVEZWxldGVkKGNv
bnN0IFN0cmluZyYgbmFtZSkKIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c2V0QWN0aXZlKGJvb2wg
YWN0aXZlKQogewotICAgIEFTU0VSVChtX3N0YXRlICE9IEZpbmlzaGVkKTsKKyAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKG1fc3RhdGUgIT0gRmluaXNoZWQsICJBIGZpbmlzaGVkIHRyYW5zYWN0aW9u
IHRyaWVkIHRvIHNldEFjdGl2ZSglcykgaW4gJXAiLCBhY3RpdmUgPyAidHJ1ZSIgOiAiZmFsc2Ui
LCB0aGlzKTsKICAgICBpZiAobV9zdGF0ZSA9PSBGaW5pc2hpbmcpCiAgICAgICAgIHJldHVybjsK
ICAgICBBU1NFUlQobV9zdGF0ZSA9PSBVbnVzZWQgfHwgbV9zdGF0ZSA9PSBVc2VkKTsKQEAgLTM3
NSw3ICszODMsMTIgQEAgYm9vbCBJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBl
dmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgogICAg
IEFTU0VSVChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jb21wbGV0ZUV2ZW50IHx8IGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwotICAgIHJldHVybiBJREJF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKKyAgICBib29s
IHJldHVyblZhbHVlID0gSURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwg
dGFyZ2V0cyk7CisgICAgLy8gRklYTUU6IFRyeSB0byBjb25zdHJ1Y3QgYSB0ZXN0IHdoZXJlIHx0
aGlzfCBvdXRsaXZlcyBvcGVuREJSZXF1ZXN0IGFuZCB3ZQorICAgIC8vIGdldCBhIGNyYXNoLgor
ICAgIGlmIChtX29wZW5EQlJlcXVlc3QpCisgICAgICAgIG1fb3BlbkRCUmVxdWVzdC0+Y2xlYXJU
cmFuc2FjdGlvblByb3BlcnR5KCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBib29s
IElEQlRyYW5zYWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDFmN2FmN2RhZDFiZTk0
OGY2YjQxOTU3Zjc5ZTVmNjg3NDJiOTlhZjAuLjAwNWUzNzM2MzBhNGQyZmYyZWJhZmQ4MWVlMzZl
YTBjOTg5YTkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBJREJDdXJzb3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQk9iamVjdFN0b3Jl
OworY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJs
aWMgSURCVHJhbnNhY3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+LCBNb2RlLCBJREJEYXRhYmFzZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJS
ZXF1ZXN0Kik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIAogICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIG1vZGVSZWFkT25seSgpOwpAQCAtMTE5LDcgKzEyMSw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6ZGVy
ZWY7CiAKIHByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURC
RGF0YWJhc2UqKTsKKyAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRh
YmFzZSosIElEQk9wZW5EQlJlcXVlc3QqKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKQEAgLTE0Miw2ICsx
NDQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAg
ICBJREJPcGVuREJSZXF1ZXN0KiBtX29wZW5EQlJlcXVlc3Q7CiAgICAgY29uc3QgTW9kZSBtX21v
ZGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjEyMDU0NThlNGY0Nzk1OWEzZWM4OTA0YmE1NjA2YzJmMTJkMTlh
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIklEQkFueS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCVXBn
cmFkZU5lZWRlZEV2ZW50PiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShpbnQ2NF90IG9s
ZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJVcGdyYWRlTmVlZGVkRXZlbnQob2xk
VmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnRUeXBlKSk7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRF
dmVudDo6SURCVXBncmFkZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBu
ZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKKyAgICA6IEV2ZW50KGV2
ZW50VHlwZSwgZmFsc2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5jZWxhYmxlKi8pCisgICAg
LCBtX29sZFZlcnNpb24ob2xkVmVyc2lvbikKKyAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9u
KQoreworfQorCitJREJVcGdyYWRlTmVlZGVkRXZlbnQ6On5JREJVcGdyYWRlTmVlZGVkRXZlbnQo
KQoreworfQorCitpbnQ2NF90IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbigpCit7
CisgICAgcmV0dXJuIG1fb2xkVmVyc2lvbjsKK30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVk
RXZlbnQ6Om5ld1ZlcnNpb24oKQoreworICAgIHJldHVybiBtX25ld1ZlcnNpb247Cit9CisKK2Nv
bnN0IEF0b21pY1N0cmluZyYgSURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQlVwZ3JhZGVO
ZWVkZWRFdmVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODA2NzFkMjQ0OGE3NjEwODEyZmJmNTUwMDljOTYyYWM0YTIw
NWU3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisjZGVmaW5lIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9o
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkFueTsKKworY2xhc3MgSURCVXBncmFkZU5lZWRl
ZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJVcGdyYWRlTmVlZGVkRXZlbnQ+IGNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24gPSBJREJEYXRh
YmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiA9IElEQkRhdGFi
YXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUg
PSBBdG9taWNTdHJpbmcoKSk7CisgICAgdmlydHVhbCB+SURCVXBncmFkZU5lZWRlZEV2ZW50KCk7
CisKKyAgICB2aXJ0dWFsIGludDY0X3Qgb2xkVmVyc2lvbigpOworICAgIHZpcnR1YWwgaW50NjRf
dCBuZXdWZXJzaW9uKCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJm
YWNlTmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIElEQlVwZ3JhZGVOZWVkZWRFdmVudChp
bnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUpOworCisgICAgaW50NjRfdCBtX29sZFZlcnNpb247CisgICAgaW50NjRfdCBt
X25ld1ZlcnNpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQlVwZ3JhZGVOZWVkZWRFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdy
YWRlTmVlZGVkRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzdiMDAwZDQyMmZiNzI3ZDQwMDgy
MzY5OGE0MDExZDIyMWQ1N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQorICAgIF0gSURCVXBncmFkZU5lZWRlZEV2ZW50IDog
RXZlbnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG9s
ZFZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcg
bmV3VmVyc2lvbjsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRkN2Q1OTc1ZjNiN2Nk
YjczNjYzNTMwMTRhMjEzYzg1NWFlNTI5NGIuLmUzOTM2NjAyYjdiMDQ0ZDlkOWQ5NTQ3ZmYwNzI4
ZWQ0NWYyMzk2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTgxNCw4ICs4MTQsMTAgQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVk
ZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZl
cnNpb25DaGFuZ2VSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
V29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5pZGwnLApAQCAtMTUwNyw2ICsxNTA5LDggQEAK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2UuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGlu
Z1RyYW5zYWN0aW9uTW9uaXRvci5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAnLApAQCAtMTUyMCw2ICsxNTI0LDggQEAKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRv
ci5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZl
bnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5n
ZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNo
YW5nZUV2ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25D
aGFuZ2VSZXF1ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA4OThkYTk2MjIz
ZmQwNzFhZDAwYmQxYTkyNTc0ZTJhYzJmYjc1ZTZlLi42OTkwMjk2NzY0NDY5ODJmZjg2YWM2MjIw
OTBjYTZkMGUxMGNiNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTExNSw2ICsxMTUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odGV4dElucHV0KSBcCiAgICAgbWFj
cm8odW5sb2FkKSBcCiAgICAgbWFjcm8odXBkYXRlcmVhZHkpIFwKKyAgICBtYWNybyh1cGdyYWRl
bmVlZGVkKSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAogICAgIG1hY3JvKHdlYmtpdHZp
c2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5pbgppbmRleCA5YzBhYzU1NThhYWFjMTYwMWU5MzA5MTViMGQ3YjQ3YThkZTY2N2UyLi5mMWU2
ZGE3OWRhOTFhYjc4MzYzMzYzNDgzOGFiN2I1NzVlMzgxMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbgpAQCAtMzksNiArMzksNyBAQCBTdG9yYWdlRXZlbnQKIFNWR0V2ZW50cyBpbnRlcmZh
Y2VOYW1lPUV2ZW50LCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21FdmVudCBjb25kaXRpb25hbD1T
VkcKIFNWR1pvb21FdmVudHMgaW50ZXJmYWNlTmFtZT1TVkdab29tRXZlbnQsIGNvbmRpdGlvbmFs
PVNWRworSURCVXBncmFkZU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
IElEQlZlcnNpb25DaGFuZ2VFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBUb3Vj
aEV2ZW50IGNvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgcnVudGltZUNvbmRpdGlvbmFsPXRvdWNo
RW5hYmxlZAogRGV2aWNlTW90aW9uRXZlbnQgY29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9O
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA0NGU4ZDhlODVh
ZjUwY2I0NWEwNGE4MjcwYzI0ZDA1NTM0MGMzMjAzLi5iNjg0MTI3YmFiZWZjNGQyNTZlZDIwM2Y1
NWI4Yjg0MGIyOWU2ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rvcnku
aW4KQEAgLTksNiArOSw3IEBAIEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJM
T0IKIEZpbGVXcml0ZXIgY29uZGl0aW9uYWw9RklMRV9TWVNURU0KIElEQkRhdGFiYXNlIGNvbmRp
dGlvbmFsPUlOREVYRURfREFUQUJBU0UKK0lEQk9wZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5E
RVhFRF9EQVRBQkFTRQogSURCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJ
REJUcmFuc2FjdGlvbiBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hh
bmdlUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjNTg0
YjFlOWZkM2VhZmE5ZWZlYWM2MWQ0MTY1ZGYzNmM0MmVkOGE3Li42Mzg5OTBlNDYxODE1Y2RkNTQ5
Y2M2YmY5YTY1NDRiZmRiMWQ2ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBwcml2
YXRlOgogdm9pZCBFeGVjdXRhYmxlV2l0aERhdGFiYXNlOjpzdGFydChJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZSogaWRiRmFjdG9yeSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSkKIHsKICAgICBSZWZQdHI8T3BlbkRhdGFiYXNlQ2FsbGJhY2s+IGNhbGxiYWNrID0gT3BlbkRh
dGFiYXNlQ2FsbGJhY2s6OmNyZWF0ZSh0aGlzKTsKLSAgICBpZGJGYWN0b3J5LT5vcGVuKGRhdGFi
YXNlTmFtZSwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2luLCBjb250ZXh0LCBTdHJpbmco
KSk7CisgICAgaWRiRmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUsIElEQkRhdGFiYXNlTWV0YWRh
dGE6Ok5vSW50VmVyc2lvbiwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2luLCBjb250ZXh0
LCBTdHJpbmcoKSk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4gdHJhbnNhY3Rpb25Gb3JEYXRhYmFzZShJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UqIGlkYkRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA3
ZGY4NGQyZmZiZTA3OTYxMzU1NjVmYTAyY2Y3ZThlMWFkODIwOTJjLi43YTM0MWY5MDM4NzFhOTc1
MjI2NGEyZGEzNzk4ZGFkZTVmMmRlMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC0xMjksNiArMTI5LDE2IEBAIHZvaWQgSURC
Q2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZCgpCiAgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZCgp
OwogfQogCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQoaW50NjRfdCBleGlzdGlu
Z1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChleGlzdGluZ1ZlcnNpb24p
OworfQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBv
bGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJh
bnNhY3Rpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFz
ZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIG5ldyBX
ZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pLCBuZXcgV2ViSURCRGF0YWJhc2VJbXBs
KGRhdGFiYXNlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuaAppbmRleCBkYjMwNTY1NTBiMmIyZTE3ZTJlMzBkZGVmNzllOWRkMjlj
MjVmZmJkLi43YWQ0OTEwMjYxM2I5ZTAyOGI5Y2IwYTg5YTM1NDQ2YTc1MjY0NGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTU2LDYg
KzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0
aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5n
VmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZl
cnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKIAog
cHJpdmF0ZToKICAgICBJREJDYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdlYklEQkNhbGxiYWNr
cz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCmluZGV4IDkwMWI1NWU1NGYyYWFmZTA0ZmZmYzIyY2E5NmIzNTMxOGVm
OTQ3ODYuLjU2YWZlNWZiNWQyYjYyZmE0NDQ5OTU0NDY5MzBhMDFkMGJjOTc3OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6ZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGkKIAogdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAg
ICBBU1NFUlQobV93ZWJJREJEYXRhYmFzZSk7CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+c2V0VmVy
c2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eS5jcHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjkyNjkzMGQwZGU1MGUwZWUy
ZDExNzg1Yi4uMTVmOTI4ZjM5YWQxZGE2ZjBiZGFhYTk3NmM4YzIwYTFiNTc2NDBmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6
On5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBjdXJyZW50VmVyc2lvbiwgaW50
NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFu
Z2UoY3VycmVudFZlcnNpb24sIHJlcXVlc3RlZFZlcnNpb24pOworfQorCiB2b2lkIElEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3Rl
ZFZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZShyZXF1ZXN0ZWRW
ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHkuaAppbmRleCBhZmZkY2U3N2Q1ZDk1OGRjMDBlMGY2ZjgwYWNmZmI4
MDEyOTU4YjNiLi40ZWViZjBjY2I4MWFkZDAzZGI1ODljMzlkNWNiMDNhZWEzZDA5Y2Q4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdl
KGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNp
b24pOwogCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0
cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBlMmM5YmI5ZTIyYzIw
YTU3YmMyZDk4ZTI1NWI2OGRiM2M1OTk2MDAxLi4yMjEwZGExNjE2NTExNzZkYjVmNDg0NDlhN2Yy
OGI2ZmNkOTIyYTBhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJG
YWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgSURCRmFj
dG9yeUJhY2tlbmRQcm94eTo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gcHJwQ2FsbGJhCiB9CiAKIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNv
bnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKK3ZvaWQgSURCRmFjdG9y
eUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MocHJwQ2FsbGJhY2tzKTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiBvcmlnaW4oc2VjdXJp
dHlPcmlnaW4pOwpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94
eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFt
ZShjb250ZXh0KTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgbmV3IFdlYklEQkNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7CisgICAg
bV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwogfQogCiB2b2lkIElE
QkZhY3RvcnlCYWNrZW5kUHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgZGF0YURpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaAppbmRleCAyMmE2ZjUyYTg2OTgxNmM4MDU2Njhk
Njg0ZDBhN2JmZmZjMjZhZTY5Li5jMGRlOTEwYTkyY2RlYTkxYTNkM2ExYzUzMGEyODA3YzVhYmZh
YTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJh
Y2tlbmRQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJG
YWN0b3J5QmFja2VuZFByb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1l
cyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5jcHAKaW5kZXggNWI1YWVkZjdjY2IzN2UyNDljNTNjMWFmOWU4ZWM4ZWQ5YjBlNmUxMi4u
MWExMzIyYWE5NTFkNzI2MGE5MTk5ODQxODIyYmRkNzYyZDUyNGRiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ4LDYg
KzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkNhbGxiYWNrc0ltcGw6OldlYklE
QkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICA6
IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKKyAgICAsIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eShm
YWxzZSkKIHsKIH0KIApAQCAtNzIsNiArNzMsMTAgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiBjdXJzb3IpCiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tz
SW1wbDo6b25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkKIHsKKyAgICBp
ZiAobV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5KSB7CisgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihzdGF0aWNfY2Fz
dDxXZWJJREJEYXRhYmFzZSo+KDApKSkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1f
Y2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9w
dFB0cih3ZWJLaXRJbnN0YW5jZSkpKTsKIH0KIApAQCAtMTA1LDYgKzExMCwxNyBAQCB2b2lkIFdl
YklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCgpCiAgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tl
ZCgpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZChsb25nIGxvbmcg
b2xkVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKG9sZFZlcnNpb24pOwor
fQorCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcg
b2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBXZWJJREJEYXRhYmFz
ZSogZGF0YWJhc2UpCit7CisgICAgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5ID0gdHJ1ZTsKKyAg
ICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIodHJhbnNhY3Rpb24pKSwgSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZSkpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCA3
YjAyMTYzNTlkNTZkODE4Njk1ZmU5NzNhMDE4MmFmYjUxMjUwMTYxLi5iNWI1NTRlMDMwNmM2MmQz
MzI0NmFiMGFkYTE1OWI1Mzk2NWQ5ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC01MSw5ICs1MSwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUm
LCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXlQYXRoJik7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbik7
CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwg
V2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgogICAgIFJl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworICAgIGJvb2wgbV9kaWRD
cmVhdGVEYXRhYmFzZVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZjYWFmM2ZlNTY1OWZhZjMx
Li42ODI4ZGY2ZmY2OTZhZGU0N2VmOTRlOGJkNDA3NDJmNGFiNjE5ZGJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
fldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIGN1cnJlbnRWZXJzaW9u
LCBsb25nIGxvbmcgcmVxdWVzdGVkVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25WZXJz
aW9uQ2hhbmdlKGN1cnJlbnRWZXJzaW9uLCByZXF1ZXN0ZWRWZXJzaW9uKTsKK30KKwogdm9pZCBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBXZWJTdHJp
bmcmIHZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZSh2ZXJzaW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsLmgKaW5kZXggMjFjM2RjN2M1YWM0YWQwYmVhOGRmMjkxNmViYjNmODhj
NjdmZjA1Zi4uNTczNDkwYmZmMzA0MmE1Y2RiZjRhMTc3MWY2YTVkZTQ0NzJlNWQ5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7
CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBjdXJyZW50VmVyc2lvbiwgbG9uZyBs
b25nIHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGJjNmQwOWZhMWZi
OTcwYzI5N2UxNzdhMjE1NGVlNzEwMThmYWZmZjcuLjkzNDMyODFjZjRkMGFmMTdjYjZjMzIyNTA4
MWRmNDA3MWRhZTg3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViSURCRGF0YWJhc2VJbXBsOjpXZWJJREJEYXRhYmFzZUltcGwoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlQmFja2VuZCkKICAgICA6IG1fZGF0YWJh
c2VCYWNrZW5kKGRhdGFiYXNlQmFja2VuZCkKKyAgICAsIG1fY2xvc2VQZW5kaW5nKGZhbHNlKQog
ewogfQogCkBAIC05NCw4ICs5NSwxMCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2Uo
KQogewogICAgIC8vIFVzZSB0aGUgY2FsbGJhY2tzIHRoYXQgOjpvcGVuIGdhdmUgdXMgc28gdGhh
dCB0aGUgYmFja2VuZCBpbgogICAgIC8vIG11bHRpLXByb2Nlc3MgY2hyb21pdW0ga25vd3Mgd2hp
Y2ggZGF0YWJhc2UgY29ubmVjdGlvbiBpcyBjbG9zaW5nLgotICAgIGlmICghbV9kYXRhYmFzZUNh
bGxiYWNrcykKKyAgICBpZiAoIW1fZGF0YWJhc2VDYWxsYmFja3MpIHsKKyAgICAgICAgbV9jbG9z
ZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fZGF0YWJhc2VC
YWNrZW5kLT5jbG9zZShtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJh
Y2tzID0gMDsKIH0KQEAgLTEwNSw2ICsxMDgsOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6
b3BlbihXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzKQogICAgIEFTU0VSVCghbV9k
YXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKICAgICBtX2RhdGFi
YXNlQmFja2VuZC0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcyhtX2RhdGFiYXNlQ2FsbGJhY2tz
KTsKKyAgICBpZiAobV9jbG9zZVBlbmRpbmcpCisgICAgICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuaAppbmRleCA0ZjgyNTE4MjBhNDliYmRmZGU1MmZhYjkxZWZmYTVhZWMwOGJh
NDZkLi4xNDA5Y2I2NWYwNjVmYjM1ZDQwMDcwM2Y2YzdiZTcyMjRkZDAwMDM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNjQsNiAr
NjQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CiAgICAgV1RGOjpSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gbV9kYXRhYmFzZUNhbGxiYWNrczsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgZmxhZyB3aGVuIHdlIGNvbnNvbGlkYXRlIHR3by1waGFzZSBv
cGVuLgorICAgIC8vIGh0dHA6Ly93a2IudWcvOTA0MTEKKyAgICBib29sIG1fY2xvc2VQZW5kaW5n
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5kZXggZDE0YWM3MWUxOGM4NTkzMTUyZWZk
ZmQ1YzgzOWUwMTcyMGUzZmZkYy4uYWQ3MTQ3NmI3ZWJiNDY4NmVhODI1Yjk2MjE5MTZlNjNiMjkw
YWM3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9y
eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJ
bXBsLmNwcApAQCAtNjMsMTcgKzYzLDkgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0
YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2UKICAgICBt
X2lkYkZhY3RvcnlCYWNrZW5kLT5nZXREYXRhYmFzZU5hbWVzKElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKLQot
dm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklE
QkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBX
ZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBtX2lkYkZhY3RvcnlC
YWNrZW5kLT5vcGVuKG5hbWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2Fs
bGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7Ci19Ci0KIHZvaWQgV2ViSURCRmFj
dG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewotICAgIC8vIEZJWE1F
OiBQYXNzIHZlcnNpb24gYWxvbmcgd2hlbiBXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZQotICAgIC8vIGhhcyBhbiBvcGVuIG1ldGhvZCB0aGF0IGFjY2VwdHMgaXQuCi0gICAgbV9p
ZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFk
b3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOworICAgIG1faWRi
RmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0K
IAogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAppbmRleCBmYTQzOGQ3
NjQ4ZTM0NjRjNWExY2JkNWNjZjU3Y2ZmMGU1NmYzMjg1Li44MzNlZWI1OTEyNTliODUzYzMyMWZk
MTE4ZjA5NGE1YjhhN2M4ODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJGYWN0b3J5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkZhY3RvcnlJbXBsLmgKQEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fldlYklEQkZhY3RvcnlJbXBsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1l
cyhXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwg
Y29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9p
ZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNh
bGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJT
dHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5k
ZXggOTFkZjEyNmE1ZmI4ZmI2N2JjNmVhYWM1MWQ5NDdlOWRhNDFkMDlhNi4uYjY1M2U3ZWUyYjZi
YjczYzFiZWJiOWMyMzI1NGMxY2MzZDhkYTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtMTAyLDcgKzEw
Miw4IEBAIFRFU1QoSURCQWJvcnRUZXN0LCBUaGVUZXN0KQogICAgIGNvbnN0IFN0cmluZyYgbmFt
ZSA9ICJkYiBuYW1lIjsKICAgICBNb2NrSURCQ2FsbGJhY2tzIGNhbGxiYWNrczsKICAgICBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoImh0dHAi
LCAibG9jYWxob3N0IiwgODEpOwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgJmNhbGxiYWNrcywg
b3JpZ2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypwYXRoKi8pOworICAgIGNvbnN0IGludDY0
X3QgRHVtbXlWZXJzaW9uID0gMjsKKyAgICBmYWN0b3J5LT5vcGVuKG5hbWUsIER1bW15VmVyc2lv
biwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypwYXRoKi8pOwog
fQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIwNTIzZGZlMTE3MGYxYzI1MTU4MmU1MmYyYjBm
M2Y5NjE5NWVkZjQuLjkzYjQ2NWY4YmUwMTBmZmExY2Q3MWJkYmQyMzdlZmJmOWU3ZmY4NTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wOC0wMSAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcg
Zm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMg
YXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25z
IGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdl
ZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxl
dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
aW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhw
ZWN0ZWQudHh0OgorCiAyMDEyLTA3LTMxICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgSGVhcC11c2UtYWZ0ZXItZnJlZSBpbiBXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggOTkwODNj
ZDc3YTlkNTA2YjFmOTY1YzhkMzQwNWE3ZDg5MmFhNmE2My4uNWEwNThjZjEyNjU5ZGNhYTRiZjE0
NTg4ZWU4NDU2OWE2YzdmNWM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQt
aW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMTEsNyArMTEsMTMgQEAg
aW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdy
YWRlTmVlZGVkCiBGSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUg
QWJvcnRFcnJvcgogcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sKLUZB
SUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorCit1cGdyYWRlTmVlZGVk
KCk6CitQQVNTIGRiLnZlcnNpb24gaXMgMgordHJhbnNhY3Rpb24uYWJvcnQoKQorCitvbkFib3J0
KCk6CitGQUlMIGV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMgMi4KIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCBmMjIyY2ExNWQwOWM3NGQzYTJmNDQ3
OThkMjBiZGMxOGU1MzI1MTZmLi4wNGYyODFhYWQ4NDdlODg2ODYyZjczOWFlNGNmYTI5NDcyNzI2
MmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMzMsMTcg
KzMzLDU3IEBAIFBBU1MgZGIudmVyc2lvbiBpcyAic29tZSB2ZXJzaW9uIgogZGIuY2xvc2UoKQog
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVk
KCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVj
dCBJREJEYXRhYmFzZV0iCitQQVNTIFN0cmluZyhyZXF1ZXN0LnRyYW5zYWN0aW9uKSBpcyAiW29i
amVjdCBJREJUcmFuc2FjdGlvbl0iCitGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIHNv
bWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLiBXYXMgMCAob2YgdHlwZSBudW1iZXIpLgorUEFT
UyBldmVudC5uZXdWZXJzaW9uIGlzIDIKK3JlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IHRyYW5zYWN0aW9uQ29tcGxldGVkCisKK3RyYW5zYWN0aW9uQ29tcGxldGVkKCk6CitkaWRUcmFu
c2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorCiBmaXJzdE9wZW5XaXRoVmVyc2lvbigpOgotRkFJTCBk
aWRUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGRp
ZFRyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBQ
QVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgogUEFTUyByZXF1ZXN0LnRy
YW5zYWN0aW9uIGlzIG51bGwKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgMiAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIFN0cmluZyhy
ZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3Qg
SURCUmVxdWVzdF0uCitQQVNTIGRiLnZlcnNpb24gaXMgMgorUEFTUyBTdHJpbmcocmVxdWVzdCkg
aXMgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iCiByZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigi
c3RyaW5nIHZlcnNpb24gMiIpCiBQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJW
ZXJzaW9uQ2hhbmdlUmVxdWVzdF0iCiByZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxs
b3dlZAotRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCisKK3NldFZl
cnNpb25Ob3RBbGxvd2VkKCk6CitQQVNTIGV2ZW50LnR5cGUgaXMgImVycm9yIgorcmVxdWVzdC53
ZWJraXRFcnJvck1lc3NhZ2UgPSBZb3UgY2FuJ3QgdXNlIHRoZSBzZXRWZXJzaW9uIGZ1bmN0aW9u
IGlmIHlvdSd2ZSBhbHJlYWR5IHNldCB0aGUgdmVyc2lvbiB0aHJvdWdoIGFuIG9wZW4gY2FsbC4g
IFRoZSBjdXJyZW50IGludGVnZXIgdmVyc2lvbiBpcyAyCitkYi5jbG9zZSgpCityZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oZGJuYW1lLCAxKQorcmVxdWVzdC5vbmVycm9yID0gZXJyb3JXaGVuVHJ5
aW5nTG93VmVyc2lvbgorCitlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKCk6CityZXF1ZXN0Lndl
YmtpdEVycm9yTWVzc2FnZSA9IFRoZSByZXF1ZXN0ZWQgdmVyc2lvbiAoMSkgaXMgbGVzcyB0aGFu
IHRoZSBleGlzdGluZyB2ZXJzaW9uICgyKS4KK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDQpCityZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWQKK3Jl
cXVlc3Qub25zdWNjZXNzID0gdGhpcmRPcGVuU3VjY2VzcworCitzZWNvbmRVcGdyYWRlTmVlZGVk
KCk6Citnb3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gdHJ1ZQorUEFTUyBldmVudC5vbGRWZXJzaW9u
IGlzIDIKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA0CisKK3RoaXJkT3BlblN1Y2Nlc3MoKToK
K1BBU1MgZ290U2Vjb25kVXBncmFkZU5lZWRlZCBpcyB0cnVlCitkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyA0CitkYi5jbG9zZSgpCityZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmb3VydGhPcGVuU3VjY2Vzcwor
Citmb3VydGhPcGVuU3VjY2VzcygpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRi
LnZlcnNpb24gaXMgNAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCBiYWMzY2NmMmMzNGJmZjA5NDk0
M2U2MTNmYTBkYjYzODdkZmJhMzk0Li4wMTM4YjY4MWVhZDEwYmM0ODk3NzFhMTU5MDhlNjRhOTI2
ZTliZmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTExLDE1ICsxMSw0MiBAQCBp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVsZXRlU3VjY2VzcygpOgogcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJh
Y2soKToKK2dvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5vbGRW
ZXJzaW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhldmVu
dCkgaXMgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIKKwogZmlyc3RTdWNjZXNzRXZl
bnRIYW5kbGVyKCk6Ci1GQUlMIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCitQQVNTIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUK
IGNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogY29ubmVjdGlvbjEub252ZXJzaW9u
Y2hhbmdlID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIKIFBBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBp
cyAiW29iamVjdCBJREJEYXRhYmFzZV0iCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCAzKQogCit2ZXJzaW9uQ2hhbmdlSGFuZGxlcigpOgorc2F3VmVyc2lvbkNoYW5nZUV2ZW50ID0g
dHJ1ZQorUEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgorRkFJTCBTdHJpbmcoZXZl
bnQpIHNob3VsZCBiZSBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0uIFdhcyBbb2JqZWN0
IElEQlVwZ3JhZGVOZWVkZWRFdmVudF0uCitQQVNTIGV2ZW50LnRhcmdldCBpcyBjb25uZWN0aW9u
MQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDIKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAz
CisKK2Jsb2NrZWRFdmVudEhhbmRsZXIoKToKK1BBU1Mgc2F3VmVyc2lvbkNoYW5nZUV2ZW50IGlz
IHRydWUKK2dvdEJsb2NrZWRFdmVudCA9IHRydWUKK0ZBSUwgU3RyaW5nKGV2ZW50KSBzaG91bGQg
YmUgW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdLiBXYXMgW29iamVjdCBJREJVcGdyYWRl
TmVlZGVkRXZlbnRdLgorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDIKK1BBU1MgZXZlbnQubmV3
VmVyc2lvbiBpcyAzCitQQVNTIGV2ZW50LnR5cGUgaXMgImJsb2NrZWQiCitjb25uZWN0aW9uMS5j
bG9zZSgpCisKK3NlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoKToKK1BBU1MgZ290Qmxv
Y2tlZEV2ZW50IGlzIHRydWUKK2dvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUKKwog
c2Vjb25kU3VjY2Vzc0NhbGxiYWNrKCk6Ci1GQUlMIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVu
dCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RTZWNvbmRVcGdyYWRlTmVlZGVk
RXZlbnQgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0
CmluZGV4IGMwNjA5ZWU0YzA1YTFlN2RhMWE4ZTkxYTllOWE4ODkzMDg4MGRmZjAuLjU1MWY4ZDg2
ZWI2ZTc3NmRlNjMxODhhOWFhMDMxMzUwMDhlY2I2ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMCwxMSArMTAsMjcgQEAgaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDcpCiAKIAordXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQ
QVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNworZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdHN0
b3JlJykKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCisKK3RyYW5zYWN0
aW9uLm9uY29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorc2V0VGltZW91
dChjbG9zZURCLCAwKQorCiBvcGVuU3VjY2VzcygpOgogUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBm
YWxzZQotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4g
V2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKK1BBU1MgZGIub2Jq
ZWN0U3RvcmVOYW1lcy5sZW5ndGggaXMgMQorZGIudHJhbnNhY3Rpb24oZGIub2JqZWN0U3RvcmVO
YW1lcykKKworY2xvc2VEQigpOgorZGlkQ2FsbENsb3NlREIgPSB0cnVlCitkYi5jbG9zZSgpCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CmluZGV4IGU2NWVkYjI0YmRk
NmUyMTk3MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EuLmMzZjgwOTZlOWY0ZGNiMzZlNDY1MTIzZTgz
ODQ1YmY0OWZlMmFkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4
cGVjdGVkLnR4dApAQCAtOSwxNCArOSwyNCBAQCBkYm5hbWUgPSAiaW50dmVyc2lvbi1jbG9zZS1p
bi1vbmNvbXBsZXRlLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAordXBncmFkZU5lZWRlZCgpOgorZGIg
PSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNworZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ29zJykKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uCisKK3RyYW5zYWN0aW9uLm9uY29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
dHJ1ZQorZGIuY2xvc2UoKQorCiBvcGVuU3VjY2VzcygpOgotRkFJTCBzYXdUcmFuc2FjdGlvbkNv
bXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29t
cGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1GQUlMIGRiLnZlcnNpb24g
c2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFT
UyBkYi52ZXJzaW9uIGlzIDcKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQogUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KLUZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgotRkFJTCBlbmFtZSBzaG91bGQg
YmUgSW52YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgorUEFTUyBjb2RlIGlzIERP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgorUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRl
RXJyb3InCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY1ZWQ4NWQ0ODE5ZGQwMGEzZTBlMzRhYzljNDRkMjljYzRkYTFkMGIuLjE4ZjMzYjhiNDZl
MmViNTQyY2NiOTQ4MTg5MWNiZWE4M2RhZTAzMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMTAsMTIgKzEwLDIyIEBAIGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCA3KQogCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
UEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQorZGIuY2xvc2UoKQorCit0cmFu
c2FjdGlvbi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKKwogb3Bl
blN1Y2Nlc3MoKToKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51
bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiB0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpCi1GQUlMIHRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ29zJykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
SURCRGF0YWJhc2UgRXhjZXB0aW9uIDgKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignb3MnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gSURC
RGF0YWJhc2UgRXhjZXB0aW9uIDExCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dApp
bmRleCBlZjE1M2QwZDk0ZTIwOGMxZjNhNGVhNGNiYjZlZGE4NWM5N2IzYjg5Li41MjhiZTc2MWEy
OWUyMDlhMzA3YTRhY2QzNjMxZjE5NDg1OGMzMDBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUtZXhwZWN0ZWQudHh0CkBAIC00Niw2ICs0NiwxMCBAQCBjb25uZWN0aW9uMS5jbG9zZSgp
CiAKIGRlbGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKCk6CiAKK3VwZ3JhZGVOZWVkZWRDYWxs
YmFjaygpOgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lv
biBpcyAwCisKIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgogUEFTUyBldmVudC50
YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZh
bGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQKaW5kZXggZTc0
ZTVhYTdmYmFjNjhmYTUxZmRkYTUxYTU0ZmZlNTNmNmI5Y2E1OC4uZDI4Y2M3ZmQwMTE5YjY3MTAz
YmQzOWMxNjBkYzljNDdmZDEzODhmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQK
QEAgLTExLDggKzExLDEzIEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiBkZWxl
dGVTdWNjZXNzKCk6CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJz
dFVwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0
cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlz
IDIKKwogZmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6Ci1GQUlMIGdvdEZpcnN0VXBncmFkZU5l
ZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGdvdEZpcnN0VXBncmFk
ZU5lZWRlZEV2ZW50IGlzIHRydWUKIGNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAog
Y29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdlID0gdW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxs
YmFjawogUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIK
QEAgLTI0LDcgKzI5LDEzIEBAIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykKIHJl
cXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25FcnJvcgogcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4
cGVjdGVkU3VjY2Vzc0NhbGxiYWNrCiByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9j
a2VkQ2FsbGJhY2sKLUZBSUwgb252ZXJzaW9uY2hhbmdlIGNhbGxlZCB1bmV4cGVjdGVkbHkKKwor
c2V0VmVyc2lvbkVycm9yKCk6CitPcGVuIHVwIGEgbmV3IGRiIHRvIGVuc3VyZSB0aGF0IGlmIGNv
bm5lY3Rpb24xIHdlcmUgdG8gZ2V0IGEgdmVyc2lvbmNoYW5nZSBldmVudCwgaXQgd2lsbCBiZSBk
ZWxpdmVyZWQgYmVmb3JlIHRoZSB0ZXN0IGZpbmlzaGVzCituZXdfZGIgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUgKyAnMicpCituZXdfZGIub25zdWNjZXNzID0gbmV3REJTdWNjZXNzCisKK25ld0RC
U3VjY2VzcygpOgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IDMz
NzBjYWQwMDQ3MTZjM2Q0OWM5Yjg1YjE1Zjg2YTlkOTljZWFkZGIuLjkwNTQ3OGRkZTQ4NzIyODMy
YzgxMGMyZDY5M2JkMjYxOTIzODlhZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNp
b24tZXhwZWN0ZWQudHh0CkBAIC0xMywxNyArMTMsMzMgQEAgU2hvdWxkIHRyaWdnZXI6CiA0LjEu
NzogSWYgdGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0
aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gdXNpbmcg
Y29ubmVjdGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4KIDQuMS45
OiBSZXR1cm4gY29ubmVjdGlvbi4KIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcp
Ci1GQUlMIFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0
XS4gV2FzIFtvYmplY3QgSURCUmVxdWVzdF0uCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29i
amVjdCBJREJPcGVuREJSZXF1ZXN0XSIKIAorUEFTUyBJbiB0aGUgdXBncmFkZW5lZWRlZCBldmVu
dCBoYW5kZXI6CitUZXN0IDQuOC45LjE6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
U3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitUZXN0IDQuOC45LjM6CitQQVNT
IGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK1BBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgImRvbmUiCitUZXN0IDQuMS40OgorUEFTUyBkYi5u
YW1lIGlzIGRibmFtZQorUEFTUyBkYi52ZXJzaW9uIGlzIDcKK1BBU1MgZGIub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGggaXMgMAordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24K
K1BBU1MgU3RyaW5nKHRyYW5zYWN0aW9uKSBpcyAiW29iamVjdCBJREJUcmFuc2FjdGlvbl0iCitv
cyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lT1MiKQorc2F3VHJhbnNhY3Rpb25Db21wbGV0
ZSA9IHRydWUKIAogb3BlblN1Y2Nlc3MoKToKIFRlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hh
bmdlIHRyYW5zYWN0aW9uIHdhcyBydW4uCi1GQUlMIHNhd1VwZ3JhZGVOZWVkZWQgc2hvdWxkIGJl
IHRydWUuIFdhcyBmYWxzZS4KLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdVcGdyYWRlTmVlZGVkIGlzIHRydWUKK1BBU1Mgc2F3
VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIEtp
bmQgb2YgdGVzdCA0LjEuOToKIFBBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFz
ZV0iCi1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAo
b2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155881</attachid>
            <date>2012-08-01 14:03:01 -0700</date>
            <delta_ts>2012-08-14 16:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120801140243.patch</filename>
            <type>text/plain</type>
            <size>82163</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwNmJhNjM4OGJkNzg0
NWE3NTE4ZDk3YWRjNmUxZTcxOGVhYWI4YS4uNTUyYTY0Mjg1YTFkYmE5MTZiNDdjYjVkNWIwMGQ0
YTliMTViMDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAxMi0wOC0wMSAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3aWxsIGVuYWJsZSBzY3JpcHQg
dG8gdXNlIGludGVnZXIgdmVyc2lvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISku
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6c2V0VmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgIChJREJEYXRh
YmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRW
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEltcGwp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lv
bkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKElEQkZh
Y3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRmFj
dG9yeUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Up
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6OklEQk9wZW5E
QlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6fklEQk9wZW5E
QlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6aW50ZXJmYWNl
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJPcGVuREJSZXF1ZXN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmNwcC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgTWFueSBhc3NlcnRzIGhlcmUgYXJlIGJ5cGFzc2VkIGZvciBhbiBvcGVuREJSZXF1ZXN0IGJl
Y2F1c2UgaXRzCisgICAgICAgIHJlYWR5U3RhdGUgaXMgc2V0IHRvIGRvbmUgd2hpbGUgZGlzcGF0
Y2hpbmcgdXBncmFkZW5lZWRlZCBhbmQgc3RheXMgZG9uZQorICAgICAgICB3aGVuIGRpc3BhdGNo
aW5nIHN1Y2Nlc3MuCisKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhp
cyBmdW5jdGlvbiB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byBy
ZXVzZSBpdHMKKyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290
IGR1cmluZworICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6OmNsZWFyVHJhbnNhY3Rpb25Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVxdWVzdDo6aXNPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIFdlIG5vdyB0YWtlIGEgcG9p
bnRlciB0byB0aGUgb3BlbkRCUmVxdWVzdCBpZiB0aGlzIGlzIGEgdmVyc2lvbgorICAgICAgICBj
aGFuZ2UgdHJhbnNhY3Rpb24gYXMgYSByZXN1bHQgb2YgYW4gb3Blbi13aXRoLXZlcnNpb24gY2Fs
bCBzbyB0aGF0IHdlCisgICAgICAgIGNhbiBjbGVhciB0aGUgdHJhbnNhY3Rpb24gcHJvcGVydHkg
b24gdGhlIG9wZW5EQlJlcXVlc3QgYXMgc29vbiBhcyB0aGUKKyAgICAgICAgdXBncmFkZW5lZWRl
ZCBldmVudCBpcyBkaXNwYXRjaGVkIHBlciB0aGUgc3BlYyAoIi4uLiBzZXQgcmVxdWVzdCdzCisg
ICAgICAgIHRyYW5zYWN0aW9uIHByb3BlcnR5IHRvIG51bGwuLi4gIiwgY3VycmVudGx5IDQuOC4x
MikuCisKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNh
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OnNldEFjdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoSURCVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6fklE
QlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRlTmVlZGVk
RXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2
ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFk
ZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDctMzEgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KIAogICAgICAgICBSZWFkIHRhZyBuYW1lcyBhbmQgYXR0cmlidXRlcyBmcm9tIHRo
ZSBzYXZlZCB0b2tlbnMgaW4gSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hU
TUxUb2tlbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzExMDBkM2RkOGRiODQx
ODJkYTc4ZjAzMWJjZjIzYWFkMWE0NDcuLmE1ZTA1MWVlN2RmNDFhOTQ0MjQyMzM0ZTQ3NDg4ZmU2
ZDU2NzE2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIw
MTItMDgtMDEgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEluZGV4ZWREQjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZlcnNpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbW1lbnRzIGlu
bGluZWQgYmVsb3c6CisKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVk
ZWQpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAoSURCQ2Fs
bGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpzZXRWZXJzaW9uKToK
KyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmg6
CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKiBzcmMvSURC
RmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkZhY3RvcnlCYWNr
ZW5kUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5Lmg6
CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6
OldlYklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJ
bXBsOjpvblN1Y2Nlc3MpOgorICAgICAgICBXZSBkb24ndCB3YW50IHRvIGNyZWF0ZSBJREJEYXRh
YmFzZUJhY2tlbmRQcm94eSBhZ2FpbiBpZiB3ZSd2ZSBhbHJlYWR5CisgICAgICAgIGNyZWF0ZWQg
aXQgZHVyaW5nIHVwZ3JhZGVOZWVkZWQuICBUaGlzIG1ha2VzCisgICAgICAgIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyguLi5JREJEYXRhYmFzZUJhY2tlbmQuLi4pIHJldXNlIGl0cyBwcmV2aW91cwor
ICAgICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgaWYgaXQgaGFzIG9uZS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdl
YklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkRhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6
b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJ
REJGYWN0b3J5SW1wbCk6CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEyLTA3LTMxICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIFdlIHNob3Vs
ZCBodWVyaXN0aWNhbGx5IGRldGVjdCBjb250ZW50IGludGVudHMgb24gdG91Y2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA1YzNk
ZmNiNmI1NDJjMWJlMDZiMjQxYjQ3Y2U5YmFjYjliNjYyOWI0Li45Y2FhNmIzODMwMDcwMDUyOGM1
MGVmN2U2MTZiYjQ1NWNlNjFiZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSURC
T2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKICNpbmNsdWRl
ICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTIwOCw2ICsy
MDksNyBAQCBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBJREJEYXRhYmFzZTo6
c2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIH0KIAogICAgIFJlZlB0cjxJREJW
ZXJzaW9uQ2hhbmdlUmVxdWVzdD4gcmVxdWVzdCA9IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIHZlcnNpb24pOworICAgIEFTU0VS
VChtX2JhY2tlbmQpOwogICAgIG1fYmFja2VuZC0+c2V0VmVyc2lvbih2ZXJzaW9uLCByZXF1ZXN0
LCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBlYyk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0z
MDEsNiArMzAzLDE3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlQ29ubmVjdGlvbigpCiAgICAg
fQogfQogCit2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBleGlzdGlu
Z1ZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3sKKyAgICBpZiAobV9jb250ZXh0
U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobV9jbG9zZVBlbmRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGVucXVldWVF
dmVudChJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShleGlzdGluZ1ZlcnNpb24sIHJlcXVl
c3RlZFZlcnNpb24sIGV2ZW50TmFtZXMoKS52ZXJzaW9uY2hhbmdlRXZlbnQpKTsKK30KKwogdm9p
ZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsK
ICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQpA
QCAtMzE0LDYgKzMyNyw3IEBAIHZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHZlcnNpb24pCiAKIHZvaWQgSURCRGF0YWJhc2U6OnJlZ2lzdGVyRnJvbnRlbmRD
YWxsYmFja3MoKQogeworICAgIEFTU0VSVChtX2JhY2tlbmQpOwogICAgIG1fYmFja2VuZC0+cmVn
aXN0ZXJGcm9udGVuZENhbGxiYWNrcyhtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggNjRjYmIz
MjZhNTg4M2RjZjM5NDczY2FhMTA5NzI5MDVmM2ZlNjc1ZS4uZDY5YzFiYjZlZjgwZDRiZDIwOGFi
NTg2Nzk3ZmNkN2UxNGZhZTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHZlcnNpb25jaGFuZ2UpOwogCiAgICAgLy8gSURCRGF0
YWJhc2VDYWxsYmFja3MKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qg
ZXhpc3RpbmdWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCA5M2QyMWYz
ZWI0YTBiMjQ0ZWVmY2I2NTVmYTgwZmY5ZDI4ZGE0NzcyLi45OGYyYzlmMDQxMDVlYzlhMTE5ZDg2
ZTJjOGI1OTk5NGJlOTQ1MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDQzLDcgKzQ0
Myw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1ZXN0ZWRWZXJz
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzKQogewotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyA9IHBy
cENhbGxiYWNrczsKICAgICBBU1NFUlQoY2FsbGJhY2tzKTsKICAgICBmb3IgKERhdGFiYXNlQ2Fs
bGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYmVn
aW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5lbmQoKTsgKytpdCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggMTk0MTJmY2JlNTBhYjQ0YmY1M2RjMDFlMDNkODg1M2Uy
OGY3YzVmZi4uZjcxN2FkYmQ1NTFkNDQyZWJiOGZkOThkZDhhN2NmZDkwZDY5YmNkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC01Miw2ICs1MiwxMiBAQCB2b2lkIElEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKICAg
ICAgICAgbV9kYXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwogfQogCit2b2lkIElE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3QgY3VycmVudFZl
cnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3sKKyAgICBpZiAobV9kYXRhYmFzZSkK
KyAgICAgICAgbV9kYXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKGN1cnJlbnRWZXJzaW9uLCByZXF1
ZXN0ZWRWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OnVucmVn
aXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5o
CmluZGV4IGU4YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2RmYjgyYmU3ZmIuLjA4MGY1YmE4
N2JmZDY4MjVjNTU1ZmM4ZDVkMGY3Zjc2Njc0M2E0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5o
CkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qg
Y3VycmVudFZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgdm9pZCB1bnJl
Z2lzdGVyRGF0YWJhc2UoSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggY2Y1MmNjMWZlMmIx
MzU1YjZjNTRlZGNlMjY1ZTBmM2U4YzNhNWU5MS4uYzgzYmEzNjQ1ZGJmNmQzOTgzYzljY2E3ZDdi
MzdhYjE1MDc3MmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktleVJh
bmdlLmgiCi0jaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVl
c3QuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURC
T3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsKICAgICAgICAgZWMgPSBOQVRJVkVf
VFlQRV9FUlI7CkBAIC0xMTQsMTEgKzExNCwxNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
QkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUwog
ICAgIGlmICghaXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4
dCwgSURCQW55OjpjcmVhdGUodGhpcyksIDApOwotICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCBy
ZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVkREJE
YXRhYmFzZVBhdGgoY29udGV4dCkpOworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRo
aXMpLCB2ZXJzaW9uKTsKKyAgICBtX2JhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lvbiwgcmVxdWVz
dCwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJh
c2VQYXRoKGNvbnRleHQpKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUGFzc1JlZlB0cjxJ
REJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
cmV0dXJuIG9wZW4oY29udGV4dCwgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJz
aW9uLCBlYyk7Cit9CisKIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkZh
Y3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG5hbWUuaXNO
dWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rvcnku
aAppbmRleCA0NjExY2I2YzRmZTgzOTkwYjQ3MjRhNDNiZjA5YzlhNWE5NWQ4ODhkLi4zNjQ1YmI4
MWRjN2VlOTY2OTA1ZGE2NTJjMDY0ZGE3Mzg2ZjY1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNs
dWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVz
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNTgsNyArNTgsOCBAQCBwdWJs
aWM6CiAKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldERhdGFiYXNlTmFtZXMoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NS
ZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICBzaG9ydCBjbXAoUGFzc1JlZlB0cjxJREJLZXk+IGZpcnN0LCBQYXNzUmVmUHRyPElEQktl
eT4gc2Vjb25kLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCmluZGV4IDAzODllYjJhYWU3ZTEyOTk1NGQ5YWNmMDNh
NTlmZmJjYzdmYmFhY2MuLmJmNzFhMmRkMjVkMWZmOTVlMjY0MzVmNGU0MWYwYzQxYjk3NjcyYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rvcnku
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRs
CkBAIC0zMCw3ICszMCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICBdIElEQkZhY3Rvcnkgewog
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1wbGVtZW50ZWRBcz1n
ZXREYXRhYmFzZU5hbWVzXSBJREJSZXF1ZXN0IHdlYmtpdEdldERhdGFiYXNlTmFtZXMoKTsKIAot
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVu
KGluIERPTVN0cmluZyBuYW1lKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCT3BlbkRCUmVxdWVzdCBvcGVuKGluIERPTVN0cmluZyBuYW1lLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBkZWxldGVEYXRhYmFzZShpbiBET01TdHJpbmcg
bmFtZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHAKaW5kZXggYjk1MThkNTQ1MThkMDEwNGM3OTZjZDBkYTdhNDYyMmE3ZjAzNzM4
My4uZTQ0ZGVhYjQ4MzVkMTNlZjkwMTQ1MTIzMGY3NDM3OGFkNjE1OWQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuY3BwCkBAIC0xNTAsMTAgKzE1MCw4IEBAIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
PiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUoUGFzc1JlZlB0cjxTCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3RvcnkpCit2b2lkIElEQkZhY3RvcnlCYWNr
ZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
cHJwU2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXJlY3RvcnkpCiB7Ci0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhIHBhcmFtZXRlciBh
bmQgcGx1bWIgdGhyb3VnaCBmcm9tIGphdmFzY3JpcHQuCi0gICAgaW50NjRfdCB2ZXJzaW9uID0g
SURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uOwogICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBwcnBTZWN1cml0eU9yaWdpbjsKICAgICBjb25zdCBTdHJp
bmcgdW5pcXVlSWRlbnRpZmllciA9IGNvbXB1dGVVbmlxdWVJZGVudGlmaWVyKG5hbWUsIHNlY3Vy
aXR5T3JpZ2luLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAppbmRleCBjYTFkMDUyODJhOGM1ZWRm
NzY2ZDVlNTU1MDhmYWUwYTljMDQ4YzY1Li5kMjZmNzQ2ODM0MmFhNmExOGRmY2RlOWJmMTc0MzY0
MjI4ZTEwNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApAQCAtMjksNyArMjksNiBAQAogI2RlZmluZSBJ
REJGYWN0b3J5QmFja2VuZEltcGxfaAogCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC01Nyw3ICs1Niw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0
IFN0cmluZyYgZmlsZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNl
TmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAg
dmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cik7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2
ZWYyMWVhNDcxOWY2MzY5NDI5Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJh
OTU0NGVhNDhhY2Y2NjZmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uo
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0
YURpcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3Bl
bkRCUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4MTQ1ZDA4NjkyZDY4YTE5M2UxYzBkYTk2M2Y5
NGJmZDA1NTdiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgorCisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1
ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRl
TmVlZGVkRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVu
REJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1Jl
ZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQoreworICAgIFJlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiByZXF1ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRl
eHQsIHNvdXJjZSwgdmVyc2lvbikpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsK
KyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6OklE
Qk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQorICAgIDogSURCUmVxdWVzdChjb250
ZXh0LCBzb3VyY2UsIDApCisgICAgLCBtX3ZlcnNpb24odmVyc2lvbikKK3sKKyAgICBBU1NFUlQo
IW1fcmVzdWx0KTsKK30KKworSURCT3BlbkRCUmVxdWVzdDo6fklEQk9wZW5EQlJlcXVlc3QoKQor
eworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIElEQk9wZW5EQlJlcXVlc3Q6OmludGVyZmFjZU5h
bWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9ySURCT3Bl
bkRCUmVxdWVzdDsKK30KKwordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQoaW50NjRf
dCBvbGRWZXJzaW9uKQoreworICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3Nh
Z2UuaXNOdWxsKCkgJiYgIW1fcmVzdWx0KTsKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxv
Y2tlZEV2ZW50KSk7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVk
KGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+IHBycFRyYW5zYWN0aW9uQmFja2VuZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCkKK3sKKyAgICBBU1NFUlQoIW1fZXJyb3JD
b2RlKTsKKyAgICBBU1NFUlQobV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkpOworICAgIEFTU0VSVCgh
bV9lcnJvcik7CisgICAgQVNTRVJUKCFtX3Jlc3VsdCk7CisgICAgaWYgKG1fY29udGV4dFN0b3Bw
ZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kID0gcHJw
RGF0YWJhc2VCYWNrZW5kOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHBycFRyYW5zYWN0aW9uQmFja2VuZDsKKyAgICBSZWZQ
dHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCk7CisKKyAgICBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHRyYW5zYWN0aW9uQmFja2VuZCwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05f
Q0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CisgICAgdHJhbnNhY3Rpb25CYWNrZW5k
LT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOworICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9u
dGVuZDsKKyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2Uo
KSk7CisKKyAgICBpZiAob2xkVmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZl
cnNpb24pIHsKKyAgICAgIC8vIFRoZSBvcGVuIGNhbGwgdGhhdCBjcmVhdGVkIHRoaXMgSURCT3Bl
bkRCUmVxdWVzdCB3YXMgdGhlIGZpcnN0IGludGVnZXIKKyAgICAgIC8vIHZlcnNpb24gdGhhdCB0
aGlzIGRhdGFiYXNlIGhhZC4KKyAgICAgIG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRh
OjpEZWZhdWx0SW50VmVyc2lvbjsKKyAgICB9CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVO
ZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLnVw
Z3JhZGVuZWVkZWRFdmVudCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjNWI4YmNjNjc3MzAzNWE0MTVjYzk0ZjFhMjUzYTRmYjE4NDUx
ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCT3Bl
bkRCUmVxdWVzdF9oCisjZGVmaW5lIElEQk9wZW5EQlJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgSURCT3BlbkRCUmVxdWVzdCA6IHB1YmxpYyBJREJSZXF1ZXN0IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0
X3QgdmVyc2lvbik7CisgICAgdmlydHVhbCB+SURCT3BlbkRCUmVxdWVzdCgpOworCisgICAgdmly
dHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBPVkVSUklERTsKKworICAgIC8vIEV2ZW50VGFyZ2V0Cisg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKwor
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYmxvY2tlZCk7CisgICAgREVGSU5F
X0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih1cGdyYWRlbmVlZGVkKTsKKworcHJpdmF0ZToKKyAg
ICBJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QkFueT4gc291cmNlLCBpbnQ2NF90IHZlcnNpb24pOworCisgICAgdmlydHVhbCBib29sIGlzT3Bl
bkRCUmVxdWVzdCgpIGNvbnN0IE9WRVJSSURFCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpbnQ2NF90IG1fdmVyc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8g
SURCT3BlbkRCUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjZjNzM1OWEwYTY1ZTY5
NWIwODQ1ZGU1ZjUzNTgzYTZjZDgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAg
ICAgICBFdmVudFRhcmdldAorICAgIF0gSURCT3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3Qgewor
ICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9udXBncmFkZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZDI1YzMx
MDJmNTk3N2QxNDNmMzE5NWUxNDMzMTk4MGFhZTdjNjU4Li42M2ZmMWRkN2M1ZDI0MTU0ZTM4OWQw
M2U2MjRjYzgzYTQ4MTBlYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNTMsMTMgKzUzLDE0IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSCiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jl
c3VsdCgwKQogICAgICwgbV9lcnJvckNvZGUoMCkKLSAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAg
ICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0
aW9uKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcp
CiAgICAgLCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNlKQogICAgICwgbV9jdXJzb3JGaW5pc2hlZChm
YWxzZSkKLSAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX2N1cnNvclR5cGUo
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpCiAgICAgLCBtX2N1
cnNvckRpcmVjdGlvbihJREJDdXJzb3I6Ok5FWFQpCiAgICAgLCBtX3BlbmRpbmdDdXJzb3IoMCkK
QEAgLTI3MywxNSArMjc0LDIxIEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CiAgICAgaWYgKG1f
cmVxdWVzdEFib3J0ZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRl
ID09IFBFTkRJTkcpOwotICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2Uu
aXNOdWxsKCkgJiYgIW1fZXJyb3IgJiYgIW1fcmVzdWx0KTsKKyAgICBBU1NFUlQobV9yZWFkeVN0
YXRlID09IFBFTkRJTkcgfHwgaXNPcGVuREJSZXF1ZXN0KCkpOworICAgIEFTU0VSVCghbV9lcnJv
ckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fZXJyb3IpOwogICAgIGlmICht
X2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFz
ZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7Ci0gICAgaWRiRGF0
YWJhc2UtPnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKLQotICAgIG1fcmVzdWx0ID0gSURC
QW55OjpjcmVhdGUoaWRiRGF0YWJhc2UucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJh
c2U+IGlkYkRhdGFiYXNlOworICAgIGlmIChtX3Jlc3VsdCkgeworICAgICAgICBpZGJEYXRhYmFz
ZSA9IG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpOworICAgICAgICBBU1NFUlQoaWRiRGF0YWJhc2Up
OworICAgICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIGJhY2tlbmQpOworICAgICAgICBpZGJEYXRhYmFzZS0+cmVn
aXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3Jl
YXRlKGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CisgICAgfQogICAgIGVucXVldWVFdmVudChjcmVh
dGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTQyNiwxMyArNDMzLDEyIEBAIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIElEQlJlcXVlc3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAog
Ym9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
ewogICAgIElEQl9UUkFDRSgiSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCIpOwotICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQ
RU5ESU5HIHx8IGlzT3BlbkRCUmVxdWVzdCgpKTsKICAgICBBU1NFUlQoIW1fY29udGV4dFN0b3Bw
ZWQpOwogICAgIEFTU0VSVChtX2VucXVldWVkRXZlbnRzLnNpemUoKSk7CiAgICAgQVNTRVJUKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSA9PSB0
aGlzKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUsICJtX3Jl
YWR5U3RhdGUgPCBET05FKCVkKSwgd2FzICVkIiwgRE9ORSwgbV9yZWFkeVN0YXRlKTsKLQorICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSB8fCBpc09wZW5EQlJlcXVl
c3QoKSwgIldoZW4gZGlzcGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERPTkUoJWQp
LCB3YXMgJWQiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERPTkUsIG1f
cmVhZHlTdGF0ZSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2Nr
ZWRFdmVudCkKICAgICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKIApAQCAtNDYxLDExICs0Njcs
MTIgQEAgYm9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBk
aXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgotICAgIEFTU0VS
VChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5ibG9ja2VkRXZlbnQpOwotICAgIGNvbnN0IGJvb2wgc2V0VHJhbnNhY3Rpb25BY3Rp
dmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNj
ZXNzRXZlbnQgfHwgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYg
bV9lcnJvckNvZGUgIT0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIpKTsKKyAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nl
c3NFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IHx8IGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCB8fCBldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQsICJldmVudCB0eXBlIHdhcyAlcyIs
IGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgY29uc3QgYm9vbCBz
ZXRUcmFuc2FjdGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS51cGdyYWRlbmVlZGVkRXZlbnQgfHwgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVy
cm9yRXZlbnQgJiYgbV9lcnJvckNvZGUgIT0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9S
VF9FUlIpKTsKIAogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkKICAgICAgICAgbV90cmFu
c2FjdGlvbi0+c2V0QWN0aXZlKHRydWUpOworCiAgICAgYm9vbCBkb250UHJldmVudERlZmF1bHQg
PSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKICAg
ICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnNldEFj
dGl2ZShmYWxzZSk7CkBAIC00OTksNiArNTA2LDEyIEBAIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVn
aHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCiAgICAgfQogfQogCit2b2lkIElEQlJlcXVlc3Q6
OmNsZWFyVHJhbnNhY3Rpb25Qcm9wZXJ0eSgpCit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24t
PmlzVmVyc2lvbkNoYW5nZSgpKTsKKyAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7Cit9CisKIHZv
aWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewog
ICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9O
RSk7CkBAIC01MDYsNyArNTE5LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fcmVh
ZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0
ZSA9PSBQRU5ESU5HIHx8IGlzT3BlbkRCUmVxdWVzdCgpLCAiV2hlbiBxdWV1ZWluZyBldmVudCAl
cywgbV9yZWFkeVN0YXRlIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgbV9yZWFkeVN0YXRlKTsKIAogICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50UXVldWUoKTsKICAgICBldmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CmluZGV4IGE4MDRjMmJkNWViMWI3MzFhNTE5NzU1ODY4OWFkYjZhNjVlYWJjM2UuLjY3ZGY0ZmJk
MjJmN2JjNmFmNmY0NTZhMDAzZWNmZjk2YWRkYjYzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4g
PiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5v
dCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lk
ZS4KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxv
Y2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IE9WRVJSSURFOwpAQCAtMTAzLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKIAorICAg
IHZvaWQgY2xlYXJUcmFuc2FjdGlvblByb3BlcnR5KCk7CisKICAgICB1c2luZyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpyZWY7CiAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8SURCQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKQEAgLTExMyw2ICsxMTYsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdW5zaWduZWQgc2hvcnQgbV9lcnJvckNvZGU7CiAgICAgU3RyaW5nIG1fZXJyb3JN
ZXNzYWdlOwogICAgIFJlZlB0cjxET01FcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fY29udGV4
dFN0b3BwZWQ7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogCiBw
cml2YXRlOgogICAgIC8vIEV2ZW50VGFyZ2V0CkBAIC0xMjMsMTQgKzEyOCwxNiBAQCBwcml2YXRl
OgogCiAgICAgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGdldFJlc3VsdEN1cnNvcigpOwogICAgIHZv
aWQgc2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CisgICAgdmlydHVhbCBi
b29sIGlzT3BlbkRCUmVxdWVzdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQogCiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3VyY2U7Ci0gICAgUmVmUHRyPElEQlRy
YW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogCiAgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7
CiAgICAgYm9vbCBtX3JlcXVlc3RBYm9ydGVkOyAvLyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2Fj
dGlvbiB0aGVuIHJlY2VpdmUgYXN5bmMgb25zdWNjZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KICAg
ICBib29sIG1fY3Vyc29yRmluaXNoZWQ7Ci0gICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOwogICAg
IFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9lbnF1ZXVlZEV2ZW50czsKIAogICAgIC8vIE9ubHkg
dXNlZCBpZiB0aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBhIGN1cnNvci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA3NjEy
MzQ3MDE0MTgzYzlkYTYxZThkYmFmZTY1ZmEzODU5OTkzNDdlLi40Nzk2YjE0MTFmN2E0NGQzZWRi
N2QyZTQxNmY0NjQwYWFmMmI0OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVl
c3QuaCIKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCiAjaW5jbHVk
ZSAiSURCVHJhY2luZy5oIgogCkBAIC00Myw3ICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRh
dGFiYXNlKiBkYikKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKGFk
b3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBiYWNrZW5kLCBtb2RlLCBkYikpKTsK
KyAgICBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0ID0gMDsKKyAgICByZXR1cm4gY3Jl
YXRlKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KTsKK30KKworUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2Uq
IGRiLCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQoreworICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRl
eHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KSkpOwogICAgIHRyYW5zYWN0aW9u
LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucmVsZWFzZSgpOwog
fQpAQCAtNzksMTAgKzg2LDExIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246
Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogfQogCiAKLUlEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2Fj
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9k
ZSwgSURCRGF0YWJhc2UqIGRiKQorSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRh
YmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QpCiAgICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYmFja2VuZChiYWNrZW5kKQogICAgICwg
bV9kYXRhYmFzZShkYikKKyAgICAsIG1fb3BlbkRCUmVxdWVzdChvcGVuREJSZXF1ZXN0KQogICAg
ICwgbV9tb2RlKG1vZGUpCiAgICAgLCBtX2FjdGl2ZSh0cnVlKQogICAgICwgbV9zdGF0ZShVbnVz
ZWQpCkBAIC0xODIsNyArMTkwLDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmVE
ZWxldGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c2V0QWN0
aXZlKGJvb2wgYWN0aXZlKQogewotICAgIEFTU0VSVChtX3N0YXRlICE9IEZpbmlzaGVkKTsKKyAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fc3RhdGUgIT0gRmluaXNoZWQsICJBIGZpbmlzaGVkIHRy
YW5zYWN0aW9uIHRyaWVkIHRvIHNldEFjdGl2ZSglcykgaW4gJXAiLCBhY3RpdmUgPyAidHJ1ZSIg
OiAiZmFsc2UiLCB0aGlzKTsKICAgICBpZiAobV9zdGF0ZSA9PSBGaW5pc2hpbmcpCiAgICAgICAg
IHJldHVybjsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBVbnVzZWQgfHwgbV9zdGF0ZSA9PSBVc2Vk
KTsKQEAgLTM3NSw3ICszODMsMTIgQEAgYm9vbCBJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVu
dChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93
IGN1c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hh
bmdlLgogICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jb21wbGV0ZUV2
ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwotICAgIHJl
dHVybiBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsK
KyAgICBib29sIHJldHVyblZhbHVlID0gSURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVu
dC5nZXQoKSwgdGFyZ2V0cyk7CisgICAgLy8gRklYTUU6IFRyeSB0byBjb25zdHJ1Y3QgYSB0ZXN0
IHdoZXJlIHx0aGlzfCBvdXRsaXZlcyBvcGVuREJSZXF1ZXN0IGFuZCB3ZQorICAgIC8vIGdldCBh
IGNyYXNoLgorICAgIGlmIChtX29wZW5EQlJlcXVlc3QpCisgICAgICAgIG1fb3BlbkRCUmVxdWVz
dC0+Y2xlYXJUcmFuc2FjdGlvblByb3BlcnR5KCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwog
fQogCiBib29sIElEQlRyYW5zYWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDFmN2Fm
N2RhZDFiZTk0OGY2YjQxOTU3Zjc5ZTVmNjg3NDJiOTlhZjAuLjAwNWUzNzM2MzBhNGQyZmYyZWJh
ZmQ4MWVlMzZlYTBjOTg5YTkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJREJDdXJzb3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQk9i
amVjdFN0b3JlOworY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKIAogY2xhc3MgSURCVHJhbnNhY3Rp
b24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw3IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFzZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJ
REJPcGVuREJSZXF1ZXN0Kik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIAogICAg
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vZGVSZWFkT25seSgpOwpAQCAtMTE5LDcgKzEy
MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzPjo6ZGVyZWY7CiAKIHByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwg
TW9kZSwgSURCRGF0YWJhc2UqKTsKKyAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2Rl
LCBJREJEYXRhYmFzZSosIElEQk9wZW5EQlJlcXVlc3QqKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKQEAg
LTE0Miw2ICsxNDQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRh
YmFzZTsKKyAgICBJREJPcGVuREJSZXF1ZXN0KiBtX29wZW5EQlJlcXVlc3Q7CiAgICAgY29uc3Qg
TW9kZSBtX21vZGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEyMDU0NThlNGY0Nzk1OWEzZWM4OTA0YmE1NjA2
YzJmMTJkMTlhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIklEQkFueS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQ
dHI8SURCVXBncmFkZU5lZWRlZEV2ZW50PiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShp
bnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJVcGdyYWRlTmVlZGVk
RXZlbnQob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnRUeXBlKSk7Cit9CisKK0lEQlVwZ3Jh
ZGVOZWVkZWRFdmVudDo6SURCVXBncmFkZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwg
aW50NjRfdCBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKKyAgICA6
IEV2ZW50KGV2ZW50VHlwZSwgZmFsc2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5jZWxhYmxl
Ki8pCisgICAgLCBtX29sZFZlcnNpb24ob2xkVmVyc2lvbikKKyAgICAsIG1fbmV3VmVyc2lvbihu
ZXdWZXJzaW9uKQoreworfQorCitJREJVcGdyYWRlTmVlZGVkRXZlbnQ6On5JREJVcGdyYWRlTmVl
ZGVkRXZlbnQoKQoreworfQorCitpbnQ2NF90IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6b2xkVmVy
c2lvbigpCit7CisgICAgcmV0dXJuIG1fb2xkVmVyc2lvbjsKK30KKworaW50NjRfdCBJREJVcGdy
YWRlTmVlZGVkRXZlbnQ6Om5ld1ZlcnNpb24oKQoreworICAgIHJldHVybiBtX25ld1ZlcnNpb247
Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgSURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRlcmZh
Y2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklE
QlVwZ3JhZGVOZWVkZWRFdmVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3Jh
ZGVOZWVkZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA2NzFkMjQ0OGE3NjEwODEyZmJmNTUwMDlj
OTYyYWM0YTIwNWU3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisjZGVmaW5lIElEQlVwZ3JhZGVOZWVk
ZWRFdmVudF9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2
ZW50LmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkFueTsKKworY2xhc3MgSURCVXBn
cmFkZU5lZWRlZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJVcGdyYWRlTmVlZGVkRXZlbnQ+IGNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24g
PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiA9
IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUgPSBBdG9taWNTdHJpbmcoKSk7CisgICAgdmlydHVhbCB+SURCVXBncmFkZU5lZWRl
ZEV2ZW50KCk7CisKKyAgICB2aXJ0dWFsIGludDY0X3Qgb2xkVmVyc2lvbigpOworICAgIHZpcnR1
YWwgaW50NjRfdCBuZXdWZXJzaW9uKCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIElEQlVwZ3JhZGVOZWVk
ZWRFdmVudChpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUpOworCisgICAgaW50NjRfdCBtX29sZFZlcnNpb247CisgICAg
aW50NjRfdCBtX25ld1ZlcnNpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQlVwZ3JhZGVO
ZWVkZWRFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzdiMDAwZDQyMmZi
NzI3ZDQwMDgyMzY5OGE0MDExZDIyMWQ1N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApAQCAtMCww
ICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAg
ICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQorICAgIF0gSURCVXBncmFkZU5lZWRl
ZEV2ZW50IDogRXZlbnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nIG9sZFZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxvbmcgbmV3VmVyc2lvbjsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRkN2Q1
OTc1ZjNiN2NkYjczNjYzNTMwMTRhMjEzYzg1NWFlNTI5NGIuLmUzOTM2NjAyYjdiMDQ0ZDlkOWQ5
NTQ3ZmYwNzI4ZWQ0NWYyMzk2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTgxNCw4ICs4MTQsMTAg
QEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5pZGwnLApAQCAtMTUwNyw2ICsx
NTA5LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAnLApAQCAtMTUyMCw2ICsxNTI0LDggQEAK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5o
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvci5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRl
TmVlZGVkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdy
YWRlTmVlZGVkRXZlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVy
c2lvbkNoYW5nZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
VmVyc2lvbkNoYW5nZUV2ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA4
OThkYTk2MjIzZmQwNzFhZDAwYmQxYTkyNTc0ZTJhYzJmYjc1ZTZlLi42OTkwMjk2NzY0NDY5ODJm
Zjg2YWM2MjIwOTBjYTZkMGUxMGNiNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTEx
NSw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odGV4dElucHV0KSBc
CiAgICAgbWFjcm8odW5sb2FkKSBcCiAgICAgbWFjcm8odXBkYXRlcmVhZHkpIFwKKyAgICBtYWNy
byh1cGdyYWRlbmVlZGVkKSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAogICAgIG1hY3Jv
KHdlYmtpdHZpc2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbgppbmRleCA5YzBhYzU1NThhYWFjMTYwMWU5MzA5MTViMGQ3YjQ3YThkZTY2
N2UyLi5mMWU2ZGE3OWRhOTFhYjc4MzYzMzYzNDgzOGFiN2I1NzVlMzgxMzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgpAQCAtMzksNiArMzksNyBAQCBTdG9yYWdlRXZlbnQKIFNWR0V2ZW50
cyBpbnRlcmZhY2VOYW1lPUV2ZW50LCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21FdmVudCBjb25k
aXRpb25hbD1TVkcKIFNWR1pvb21FdmVudHMgaW50ZXJmYWNlTmFtZT1TVkdab29tRXZlbnQsIGNv
bmRpdGlvbmFsPVNWRworSURCVXBncmFkZU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUlOREVYRURf
REFUQUJBU0UKIElEQlZlcnNpb25DaGFuZ2VFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFC
QVNFCiBUb3VjaEV2ZW50IGNvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgcnVudGltZUNvbmRpdGlv
bmFsPXRvdWNoRW5hYmxlZAogRGV2aWNlTW90aW9uRXZlbnQgY29uZGl0aW9uYWw9REVWSUNFX09S
SUVOVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA0
NGU4ZDhlODVhZjUwY2I0NWEwNGE4MjcwYzI0ZDA1NTM0MGMzMjAzLi5iNjg0MTI3YmFiZWZjNGQy
NTZlZDIwM2Y1NWI4Yjg0MGIyOWU2ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KQEAgLTksNiArOSw3IEBAIEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRp
dGlvbmFsPUJMT0IKIEZpbGVXcml0ZXIgY29uZGl0aW9uYWw9RklMRV9TWVNURU0KIElEQkRhdGFi
YXNlIGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKK0lEQk9wZW5EQlJlcXVlc3QgY29uZGl0
aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RB
VEFCQVNFCiBJREJUcmFuc2FjdGlvbiBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJW
ZXJzaW9uQ2hhbmdlUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCBjNTg0YjFlOWZkM2VhZmE5ZWZlYWM2MWQ0MTY1ZGYzNmM0MmVkOGE3Li42Mzg5OTBlNDYx
ODE1Y2RkNTQ5Y2M2YmY5YTY1NDRiZmRiMWQ2ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTIzNyw3ICsyMzcs
NyBAQCBwcml2YXRlOgogdm9pZCBFeGVjdXRhYmxlV2l0aERhdGFiYXNlOjpzdGFydChJREJGYWN0
b3J5QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSkKIHsKICAgICBSZWZQdHI8T3BlbkRhdGFiYXNlQ2FsbGJhY2s+IGNhbGxiYWNr
ID0gT3BlbkRhdGFiYXNlQ2FsbGJhY2s6OmNyZWF0ZSh0aGlzKTsKLSAgICBpZGJGYWN0b3J5LT5v
cGVuKGRhdGFiYXNlTmFtZSwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2luLCBjb250ZXh0
LCBTdHJpbmcoKSk7CisgICAgaWRiRmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUsIElEQkRhdGFi
YXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2lu
LCBjb250ZXh0LCBTdHJpbmcoKSk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25Gb3JEYXRhYmFzZShJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2UqIGlkYkRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cAppbmRleCA3ZGY4NGQyZmZiZTA3OTYxMzU1NjVmYTAyY2Y3ZThlMWFkODIwOTJjLi43YTM0MWY5
MDM4NzFhOTc1MjI2NGEyZGEzNzk4ZGFkZTVmMmRlMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC0xMjksNiArMTI5LDE2IEBA
IHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZCgpCiAgICAgbV9jYWxsYmFja3MtPm9u
QmxvY2tlZCgpOwogfQogCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQoaW50NjRf
dCBleGlzdGluZ1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChleGlzdGlu
Z1ZlcnNpb24pOworfQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQo
aW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gdHJhbnNhY3Rpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBkYXRhYmFzZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNp
b24sIG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pLCBuZXcgV2ViSURCRGF0
YWJhc2VJbXBsKGRhdGFiYXNlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBkYjMwNTY1NTBiMmIyZTE3ZTJlMzBkZGVm
NzllOWRkMjljMjVmZmJkLi43YWQ0OTEwMjYxM2I5ZTAyOGI5Y2IwYTg5YTM1NDQ2YTc1MjY0NGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgK
QEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRo
Q29udGludWF0aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChj
b25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90
IGV4aXN0aW5nVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2
NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZh
Y2U+KTsKIAogcHJpdmF0ZToKICAgICBJREJDYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdlYklE
QkNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDkwMWI1NWU1NGYyYWFmZTA0ZmZmYzIyY2E5
NmIzNTMxOGVmOTQ3ODYuLjU2YWZlNWZiNWQyYjYyZmE0NDQ5OTU0NDY5MzBhMDFkMGJjOTc3OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGkK
IAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcm
IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKKyAgICBBU1NFUlQobV93ZWJJREJEYXRhYmFzZSk7CiAgICAgbV93ZWJJREJEYXRhYmFz
ZS0+c2V0VmVyc2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
LCBlYyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjkyNjkzMGQw
ZGU1MGUwZWUyZDExNzg1Yi4uMTVmOTI4ZjM5YWQxZGE2ZjBiZGFhYTk3NmM4YzIwYTFiNTc2NDBm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzUHJveHk6On5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9pZCBJREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBjdXJyZW50VmVy
c2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZl
cnNpb25DaGFuZ2UoY3VycmVudFZlcnNpb24sIHJlcXVlc3RlZFZlcnNpb24pOworfQorCiB2b2lk
IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcm
IHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZShy
ZXF1ZXN0ZWRWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAppbmRleCBhZmZkY2U3N2Q1ZDk1OGRjMDBlMGY2
ZjgwYWNmZmI4MDEyOTU4YjNiLi40ZWViZjBjY2I4MWFkZDAzZGI1ODljMzlkNWNiMDNhZWEzZDA5
Y2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbik7CisgICAgdmlydHVhbCB2
b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVl
c3RlZFZlcnNpb24pOwogCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHko
UGFzc093blB0cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBlMmM5
YmI5ZTIyYzIwYTU3YmMyZDk4ZTI1NWI2OGRiM2M1OTk2MDAxLi4yMjEwZGExNjE2NTExNzZkYjVm
NDg0NDlhN2YyOGI2ZmNkOTIyYTBhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZv
aWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcHJwQ2FsbGJhCiB9CiAKIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5
OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENh
bGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKK3ZvaWQg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3Qg
dmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiBvcmln
aW4oc2VjdXJpdHlPcmlnaW4pOwpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSURCRmFjdG9yeUJh
Y2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBn
ZXRXZWJGcmFtZShjb250ZXh0KTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgbmV3
IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURp
cik7CisgICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBXZWJJREJD
YWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwogfQog
CiB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaAppbmRleCAyMmE2ZjUyYTg2OTgx
NmM4MDU2NjhkNjg0ZDBhN2JmZmZjMjZhZTY5Li5jMGRlOTEwYTkyY2RlYTkxYTNkM2ExYzUzMGEy
ODA3YzVhYmZhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJG
YWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RmFjdG9yeUJhY2tlbmRQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JREJGYWN0b3J5QmFja2VuZFByb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0
YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggNWI1YWVkZjdjY2IzN2UyNDljNTNjMWFmOWU4ZWM4ZWQ5
YjBlNmUxMi4uMWExMzIyYWE5NTFkNzI2MGE5MTk5ODQxODIyYmRkNzYyZDUyNGRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
QEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkNhbGxiYWNrc0lt
cGw6OldlYklEQkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNr
cykKICAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKKyAgICAsIG1fZGlkQ3JlYXRlRGF0YWJh
c2VQcm94eShmYWxzZSkKIHsKIH0KIApAQCAtNzIsNiArNzMsMTAgQEAgdm9pZCBXZWJJREJDYWxs
YmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiBjdXJzb3IpCiAKIHZvaWQgV2ViSURC
Q2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSkK
IHsKKyAgICBpZiAobV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5KSB7CisgICAgICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihz
dGF0aWNfY2FzdDxXZWJJREJEYXRhYmFzZSo+KDApKSkpOworICAgICAgICByZXR1cm47CisgICAg
fQogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cih3ZWJLaXRJbnN0YW5jZSkpKTsKIH0KIApAQCAtMTA1LDYgKzExMCwxNyBA
QCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCgpCiAgICAgbV9jYWxsYmFja3Mt
Pm9uQmxvY2tlZCgpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZChs
b25nIGxvbmcgb2xkVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKG9sZFZl
cnNpb24pOworfQorCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZChs
b25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBXZWJJ
REJEYXRhYmFzZSogZGF0YWJhc2UpCit7CisgICAgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5ID0g
dHJ1ZTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24sIElEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIodHJhbnNhY3Rpb24pKSwgSURC
RGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZSkpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNr
c0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
aAppbmRleCA3YjAyMTYzNTlkNTZkODE4Njk1ZmU5NzNhMDE4MmFmYjUxMjUwMTYxLi5iNWI1NTRl
MDMwNmM2MmQzMzI0NmFiMGFkYTE1OWI1Mzk2NWQ5ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC01MSw5ICs1MSwxMiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJLZXlQYXRoJik7CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsKICAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcgb2xk
VmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xk
VmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBwcml2YXRl
OgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworICAgIGJv
b2wgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZjYWFmM2Zl
NTY1OWZhZjMxLi42ODI4ZGY2ZmY2OTZhZGU0N2VmOTRlOGJkNDA3NDJmNGFiNjE5ZGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbDo6fldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIGN1cnJl
bnRWZXJzaW9uLCBsb25nIGxvbmcgcmVxdWVzdGVkVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNr
cy0+b25WZXJzaW9uQ2hhbmdlKGN1cnJlbnRWZXJzaW9uLCByZXF1ZXN0ZWRWZXJzaW9uKTsKK30K
Kwogdm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShjb25z
dCBXZWJTdHJpbmcmIHZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5n
ZSh2ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggMjFjM2RjN2M1YWM0YWQwYmVhOGRmMjkx
NmViYjNmODhjNjdmZjA1Zi4uNTczNDkwYmZmMzA0MmE1Y2RiZjRhMTc3MWY2YTVkZTQ0NzJlNWQ5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2Fs
bGJhY2tzPik7CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBjdXJyZW50VmVyc2lv
biwgbG9uZyBsb25nIHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNp
b25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGJj
NmQwOWZhMWZiOTcwYzI5N2UxNzdhMjE1NGVlNzEwMThmYWZmZjcuLjkzNDMyODFjZjRkMGFmMTdj
YjZjMzIyNTA4MWRmNDA3MWRhZTg3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViSURCRGF0YWJhc2VJbXBsOjpXZWJJREJEYXRhYmFzZUltcGwoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlQmFja2VuZCkKICAgICA6
IG1fZGF0YWJhc2VCYWNrZW5kKGRhdGFiYXNlQmFja2VuZCkKKyAgICAsIG1fY2xvc2VQZW5kaW5n
KGZhbHNlKQogewogfQogCkBAIC05NCw4ICs5NSwxMCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1w
bDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0aGUgY2FsbGJhY2tzIHRoYXQgOjpvcGVuIGdhdmUg
dXMgc28gdGhhdCB0aGUgYmFja2VuZCBpbgogICAgIC8vIG11bHRpLXByb2Nlc3MgY2hyb21pdW0g
a25vd3Mgd2hpY2ggZGF0YWJhc2UgY29ubmVjdGlvbiBpcyBjbG9zaW5nLgotICAgIGlmICghbV9k
YXRhYmFzZUNhbGxiYWNrcykKKyAgICBpZiAoIW1fZGF0YWJhc2VDYWxsYmFja3MpIHsKKyAgICAg
ICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1f
ZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICBtX2RhdGFi
YXNlQ2FsbGJhY2tzID0gMDsKIH0KQEAgLTEwNSw2ICsxMDgsOCBAQCB2b2lkIFdlYklEQkRhdGFi
YXNlSW1wbDo6b3BlbihXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzKQogICAgIEFT
U0VSVCghbV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IElE
QkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKICAg
ICBtX2RhdGFiYXNlQmFja2VuZC0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcyhtX2RhdGFiYXNl
Q2FsbGJhY2tzKTsKKyAgICBpZiAobV9jbG9zZVBlbmRpbmcpCisgICAgICAgIGNsb3NlKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCA0ZjgyNTE4MjBhNDliYmRmZGU1MmZhYjkxZWZm
YTVhZWMwOGJhNDZkLi4xNDA5Y2I2NWYwNjVmYjM1ZDQwMDcwM2Y2YzdiZTcyMjRkZDAwMDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApA
QCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CiAgICAg
V1RGOjpSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gbV9kYXRhYmFzZUNhbGxiYWNr
czsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZmxhZyB3aGVuIHdlIGNvbnNvbGlkYXRlIHR3
by1waGFzZSBvcGVuLgorICAgIC8vIGh0dHA6Ly93a2IudWcvOTA0MTEKKyAgICBib29sIG1fY2xv
c2VQZW5kaW5nOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5kZXggZDE0YWM3MWUxOGM4
NTkzMTUyZWZkZmQ1YzgzOWUwMTcyMGUzZmZkYy4uYWQ3MTQ3NmI3ZWJiNDY4NmVhODI1Yjk2MjE5
MTZlNjNiMjkwYWM3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRmFjdG9yeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkZhY3RvcnlJbXBsLmNwcApAQCAtNjMsMTcgKzYzLDkgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1w
bDo6Z2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2Vi
U2UKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5nZXREYXRhYmFzZU5hbWVzKElEQkNhbGxiYWNr
c1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIG9yaWdpbiwgMCwgZGF0YURpcik7
CiB9CiAKLQotdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5h
bWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYg
b3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBtX2lk
YkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRv
cHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7Ci19Ci0KIHZvaWQg
V2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcg
dmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewotICAg
IC8vIEZJWE1FOiBQYXNzIHZlcnNpb24gYWxvbmcgd2hlbiBXZWJDb3JlOjpJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZQotICAgIC8vIGhhcyBhbiBvcGVuIG1ldGhvZCB0aGF0IGFjY2VwdHMgaXQu
Ci0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6
Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwor
ICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lvbiwgSURCQ2FsbGJhY2tz
UHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRh
RGlyKTsKIH0KIAogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6ZGVsZXRlRGF0YWJhc2UoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1w
bC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAppbmRl
eCBmYTQzOGQ3NjQ4ZTM0NjRjNWExY2JkNWNjZjU3Y2ZmMGU1NmYzMjg1Li44MzNlZWI1OTEyNTli
ODUzYzMyMWZkMTE4ZjA5NGE1YjhhN2M4ODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKQEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfldlYklEQkZhY3RvcnlJbXBsKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0
YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdl
YkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3Vy
aXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZp
cnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24s
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFz
ZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3Vy
aXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVz
dC5jcHAKaW5kZXggOTFkZjEyNmE1ZmI4ZmI2N2JjNmVhYWM1MWQ5NDdlOWRhNDFkMDlhNi4uYjY1
M2U3ZWUyYjZiYjczYzFiZWJiOWMyMzI1NGMxY2MzZDhkYTlhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAt
MTAyLDcgKzEwMiw4IEBAIFRFU1QoSURCQWJvcnRUZXN0LCBUaGVUZXN0KQogICAgIGNvbnN0IFN0
cmluZyYgbmFtZSA9ICJkYiBuYW1lIjsKICAgICBNb2NrSURCQ2FsbGJhY2tzIGNhbGxiYWNrczsK
ICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUoImh0dHAiLCAibG9jYWxob3N0IiwgODEpOwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgJmNh
bGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypwYXRoKi8pOworICAgIGNv
bnN0IGludDY0X3QgRHVtbXlWZXJzaW9uID0gMjsKKyAgICBmYWN0b3J5LT5vcGVuKG5hbWUsIER1
bW15VmVyc2lvbiwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypw
YXRoKi8pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIwNTIzZGZlMTE3MGYxYzI1MTU4
MmU1MmYyYjBmM2Y5NjE5NWVkZjQuLjVlNTRiN2U3ZjBhZDZjM2M0NjVmMTlmOWYyYTMwYTM5YmZh
NjAxYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOC0wMSAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBGcm9udGVuZCBhbmQg
cGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZl
bnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxp
ZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQu
dHh0OgorCiAyMDEyLTA3LTMxICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSGVhcC11c2UtYWZ0ZXItZnJlZSBpbiBXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggOTkwODNjZDc3YTlk
NTA2YjFmOTY1YzhkMzQwNWE3ZDg5MmFhNmE2My4uNWEwNThjZjEyNjU5ZGNhYTRiZjE0NTg4ZWU4
NDU2OWE2YzdmNWM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMTEsNyArMTEsMTMgQEAgaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAyKQogcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVl
ZGVkCiBGSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRF
cnJvcgogcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sKLUZBSUwgU3Vj
Y2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorCit1cGdyYWRlTmVlZGVkKCk6CitQ
QVNTIGRiLnZlcnNpb24gaXMgMgordHJhbnNhY3Rpb24uYWJvcnQoKQorCitvbkFib3J0KCk6CitG
QUlMIGV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMgMi4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCBmMjIyY2ExNWQwOWM3NGQzYTJmNDQ3OThkMjBi
ZGMxOGU1MzI1MTZmLi4wNGYyODFhYWQ4NDdlODg2ODYyZjczOWFlNGNmYTI5NDcyNzI2MmYwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1z
ZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMzMsMTcgKzMzLDU3
IEBAIFBBU1MgZGIudmVyc2lvbiBpcyAic29tZSB2ZXJzaW9uIgogZGIuY2xvc2UoKQogcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkKCk6Citk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJE
YXRhYmFzZV0iCitQQVNTIFN0cmluZyhyZXF1ZXN0LnRyYW5zYWN0aW9uKSBpcyAiW29iamVjdCBJ
REJUcmFuc2FjdGlvbl0iCitGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIHNvbWUgdmVy
c2lvbiAob2YgdHlwZSBzdHJpbmcpLiBXYXMgMCAob2YgdHlwZSBudW1iZXIpLgorUEFTUyBldmVu
dC5uZXdWZXJzaW9uIGlzIDIKK3JlcXVlc3QudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRyYW5z
YWN0aW9uQ29tcGxldGVkCisKK3RyYW5zYWN0aW9uQ29tcGxldGVkKCk6CitkaWRUcmFuc2FjdGlv
bkNvbXBsZXRlID0gdHJ1ZQorCiBmaXJzdE9wZW5XaXRoVmVyc2lvbigpOgotRkFJTCBkaWRUcmFu
c2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGRpZFRyYW5z
YWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIFN0
cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgogUEFTUyByZXF1ZXN0LnRyYW5zYWN0
aW9uIGlzIG51bGwKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgMiAob2YgdHlwZSBudW1iZXIp
LiBXYXMgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuCi1GQUlMIFN0cmluZyhyZXF1ZXN0
KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2FzIFtvYmplY3QgSURCUmVx
dWVzdF0uCitQQVNTIGRiLnZlcnNpb24gaXMgMgorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltv
YmplY3QgSURCT3BlbkRCUmVxdWVzdF0iCiByZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigic3RyaW5n
IHZlcnNpb24gMiIpCiBQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJWZXJzaW9u
Q2hhbmdlUmVxdWVzdF0iCiByZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uTm90QWxsb3dlZAot
RkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCisKK3NldFZlcnNpb25O
b3RBbGxvd2VkKCk6CitQQVNTIGV2ZW50LnR5cGUgaXMgImVycm9yIgorcmVxdWVzdC53ZWJraXRF
cnJvck1lc3NhZ2UgPSBZb3UgY2FuJ3QgdXNlIHRoZSBzZXRWZXJzaW9uIGZ1bmN0aW9uIGlmIHlv
dSd2ZSBhbHJlYWR5IHNldCB0aGUgdmVyc2lvbiB0aHJvdWdoIGFuIG9wZW4gY2FsbC4gIFRoZSBj
dXJyZW50IGludGVnZXIgdmVyc2lvbiBpcyAyCitkYi5jbG9zZSgpCityZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAxKQorcmVxdWVzdC5vbmVycm9yID0gZXJyb3JXaGVuVHJ5aW5nTG93
VmVyc2lvbgorCitlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uKCk6CityZXF1ZXN0LndlYmtpdEVy
cm9yTWVzc2FnZSA9IFRoZSByZXF1ZXN0ZWQgdmVyc2lvbiAoMSkgaXMgbGVzcyB0aGFuIHRoZSBl
eGlzdGluZyB2ZXJzaW9uICgyKS4KK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDQp
CityZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHNlY29uZFVwZ3JhZGVOZWVkZWQKK3JlcXVlc3Qu
b25zdWNjZXNzID0gdGhpcmRPcGVuU3VjY2VzcworCitzZWNvbmRVcGdyYWRlTmVlZGVkKCk6Citn
b3RTZWNvbmRVcGdyYWRlTmVlZGVkID0gdHJ1ZQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDIK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA0CisKK3RoaXJkT3BlblN1Y2Nlc3MoKToKK1BBU1Mg
Z290U2Vjb25kVXBncmFkZU5lZWRlZCBpcyB0cnVlCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K1BBU1MgZGIudmVyc2lvbiBpcyA0CitkYi5jbG9zZSgpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQorcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmb3VydGhPcGVuU3VjY2VzcworCitmb3Vy
dGhPcGVuU3VjY2VzcygpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRiLnZlcnNp
b24gaXMgNAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCBiYWMzY2NmMmMzNGJmZjA5NDk0M2U2MTNm
YTBkYjYzODdkZmJhMzk0Li4wMTM4YjY4MWVhZDEwYmM0ODk3NzFhMTU5MDhlNjRhOTI2ZTliZmQw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTExLDE1ICsxMSw0MiBAQCBpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVsZXRlU3VjY2VzcygpOgogcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2soKToK
K2dvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5vbGRWZXJzaW9u
IGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhldmVudCkgaXMg
IltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIKKwogZmlyc3RTdWNjZXNzRXZlbnRIYW5k
bGVyKCk6Ci1GQUlMIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCitQQVNTIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIGNvbm5l
Y3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogY29ubmVjdGlvbjEub252ZXJzaW9uY2hhbmdl
ID0gdmVyc2lvbkNoYW5nZUhhbmRsZXIKIFBBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29i
amVjdCBJREJEYXRhYmFzZV0iCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAzKQog
Cit2ZXJzaW9uQ2hhbmdlSGFuZGxlcigpOgorc2F3VmVyc2lvbkNoYW5nZUV2ZW50ID0gdHJ1ZQor
UEFTUyBldmVudC50eXBlIGlzICJ2ZXJzaW9uY2hhbmdlIgorRkFJTCBTdHJpbmcoZXZlbnQpIHNo
b3VsZCBiZSBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0uIFdhcyBbb2JqZWN0IElEQlVw
Z3JhZGVOZWVkZWRFdmVudF0uCitQQVNTIGV2ZW50LnRhcmdldCBpcyBjb25uZWN0aW9uMQorUEFT
UyBldmVudC5vbGRWZXJzaW9uIGlzIDIKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAzCisKK2Js
b2NrZWRFdmVudEhhbmRsZXIoKToKK1BBU1Mgc2F3VmVyc2lvbkNoYW5nZUV2ZW50IGlzIHRydWUK
K2dvdEJsb2NrZWRFdmVudCA9IHRydWUKK0ZBSUwgU3RyaW5nKGV2ZW50KSBzaG91bGQgYmUgW29i
amVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdLiBXYXMgW29iamVjdCBJREJVcGdyYWRlTmVlZGVk
RXZlbnRdLgorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDIKK1BBU1MgZXZlbnQubmV3VmVyc2lv
biBpcyAzCitQQVNTIGV2ZW50LnR5cGUgaXMgImJsb2NrZWQiCitjb25uZWN0aW9uMS5jbG9zZSgp
CisKK3NlY29uZFVwZ3JhZGVOZWVkZWRFdmVudEhhbmRsZXIoKToKK1BBU1MgZ290QmxvY2tlZEV2
ZW50IGlzIHRydWUKK2dvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUKKwogc2Vjb25k
U3VjY2Vzc0NhbGxiYWNrKCk6Ci1GQUlMIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQg
aXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IGMwNjA5ZWU0YzA1YTFlN2RhMWE4ZTkxYTllOWE4ODkzMDg4MGRmZjAuLjU1MWY4ZDg2ZWI2ZTc3
NmRlNjMxODhhOWFhMDMxMzUwMDhlY2I2ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0
d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xMCwxMSArMTAsMjcgQEAgaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcp
CiAKIAordXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV2
ZW50Lm5ld1ZlcnNpb24gaXMgNworZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdHN0b3JlJykK
K3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCisKK3RyYW5zYWN0aW9uLm9u
Y29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorc2V0VGltZW91dChjbG9z
ZURCLCAwKQorCiBvcGVuU3VjY2VzcygpOgogUEFTUyBkaWRDYWxsQ2xvc2VEQiBpcyBmYWxzZQot
RkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQ
QVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAo
b2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKK1BBU1MgZGIub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGggaXMgMQorZGIudHJhbnNhY3Rpb24oZGIub2JqZWN0U3RvcmVOYW1lcykK
KworY2xvc2VEQigpOgorZGlkQ2FsbENsb3NlREIgPSB0cnVlCitkYi5jbG9zZSgpCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CmluZGV4IGU2NWVkYjI0YmRkNmUyMTk3
MzI1MjRjMTE5NThiZTI0MGM5M2Y4Y2EuLmMzZjgwOTZlOWY0ZGNiMzZlNDY1MTIzZTgzODQ1YmY0
OWZlMmFkMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVk
LnR4dApAQCAtOSwxNCArOSwyNCBAQCBkYm5hbWUgPSAiaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNv
bXBsZXRlLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAordXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNworZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ29zJykKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCisK
K3RyYW5zYWN0aW9uLm9uY29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQor
ZGIuY2xvc2UoKQorCiBvcGVuU3VjY2VzcygpOgotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUg
aXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxk
IGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52
ZXJzaW9uIGlzIDcKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSB0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdvcycsICdyZWFkd3JpdGUnKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4K
LUZBSUwgY29kZSBzaG91bGQgYmUgMTEuIFdhcyA4LgotRkFJTCBlbmFtZSBzaG91bGQgYmUgSW52
YWxpZFN0YXRlRXJyb3IuIFdhcyBOb3RGb3VuZEVycm9yLgorUEFTUyBjb2RlIGlzIERPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUgorUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3In
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CmluZGV4IDY1
ZWQ4NWQ0ODE5ZGQwMGEzZTBlMzRhYzljNDRkMjljYzRkYTFkMGIuLjE4ZjMzYjhiNDZlMmViNTQy
Y2NiOTQ4MTg5MWNiZWE4M2RhZTAzMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11
cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMTAsMTIgKzEwLDIyIEBAIGluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3
KQogCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBl
dmVudC5uZXdWZXJzaW9uIGlzIDcKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQorZGIuY2xvc2UoKQorCit0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKKwogb3BlblN1Y2Nl
c3MoKToKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlciku
IFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiB0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdvcycpCi1GQUlMIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ29zJykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gSURCRGF0
YWJhc2UgRXhjZXB0aW9uIDgKK0ZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3Mn
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gSURCRGF0YWJh
c2UgRXhjZXB0aW9uIDExCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dAppbmRleCBl
ZjE1M2QwZDk0ZTIwOGMxZjNhNGVhNGNiYjZlZGE4NWM5N2IzYjg5Li41MjhiZTc2MWEyOWUyMDlh
MzA3YTRhY2QzNjMxZjE5NDg1OGMzMDBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUt
ZXhwZWN0ZWQudHh0CkBAIC00Niw2ICs0NiwxMCBAQCBjb25uZWN0aW9uMS5jbG9zZSgpCiAKIGRl
bGV0ZURhdGFiYXNlU3VjY2Vzc0NhbGxiYWNrKCk6CiAKK3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygp
OgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAw
CisKIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgogUEFTUyBldmVudC50YXJnZXQu
cmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNl
dHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQKaW5kZXggZTc0ZTVhYTdm
YmFjNjhmYTUxZmRkYTUxYTU0ZmZlNTNmNmI5Y2E1OC4uZDI4Y2M3ZmQwMTE5YjY3MTAzYmQzOWMx
NjBkYzljNDdmZDEzODhmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1p
bnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQKQEAgLTEx
LDggKzExLDEzIEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiBkZWxldGVTdWNj
ZXNzKCk6CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3Jh
ZGVOZWVkZWRDYWxsYmFjaygpOgorZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCitQ
QVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDIKKwog
Zmlyc3RTdWNjZXNzRXZlbnRIYW5kbGVyKCk6Ci1GQUlMIGdvdEZpcnN0VXBncmFkZU5lZWRlZEV2
ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGdvdEZpcnN0VXBncmFkZU5lZWRl
ZEV2ZW50IGlzIHRydWUKIGNvbm5lY3Rpb24xID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogY29ubmVj
dGlvbjEub252ZXJzaW9uY2hhbmdlID0gdW5leHBlY3RlZFZlcnNpb25DaGFuZ2VDYWxsYmFjawog
UEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKQEAgLTI0
LDcgKzI5LDEzIEBAIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uJykKIHJlcXVlc3Qu
b25lcnJvciA9IHNldFZlcnNpb25FcnJvcgogcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVk
U3VjY2Vzc0NhbGxiYWNrCiByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2sKLUZBSUwgb252ZXJzaW9uY2hhbmdlIGNhbGxlZCB1bmV4cGVjdGVkbHkKKworc2V0VmVy
c2lvbkVycm9yKCk6CitPcGVuIHVwIGEgbmV3IGRiIHRvIGVuc3VyZSB0aGF0IGlmIGNvbm5lY3Rp
b24xIHdlcmUgdG8gZ2V0IGEgdmVyc2lvbmNoYW5nZSBldmVudCwgaXQgd2lsbCBiZSBkZWxpdmVy
ZWQgYmVmb3JlIHRoZSB0ZXN0IGZpbmlzaGVzCituZXdfZGIgPSBpbmRleGVkREIub3BlbihkYm5h
bWUgKyAnMicpCituZXdfZGIub25zdWNjZXNzID0gbmV3REJTdWNjZXNzCisKK25ld0RCU3VjY2Vz
cygpOgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4t
d2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IDMzNzBjYWQw
MDQ3MTZjM2Q0OWM5Yjg1YjE1Zjg2YTlkOTljZWFkZGIuLjkwNTQ3OGRkZTQ4NzIyODMyYzgxMGMy
ZDY5M2JkMjYxOTIzODlhZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhw
ZWN0ZWQudHh0CkBAIC0xMywxNyArMTMsMzMgQEAgU2hvdWxkIHRyaWdnZXI6CiA0LjEuNzogSWYg
dGhlIHZlcnNpb24gb2YgZGIgaXMgbG93ZXIgdGhhbiB2ZXJzaW9uLCB0aGVuIHJ1biB0aGUgc3Rl
cHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24gdXNpbmcgY29ubmVj
dGlvbiwgdmVyc2lvbiwgcmVxdWVzdCBhbmQgdXBncmFkZSBjYWxsYmFjay4KIDQuMS45OiBSZXR1
cm4gY29ubmVjdGlvbi4KIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCi1GQUlM
IFN0cmluZyhyZXF1ZXN0KSBzaG91bGQgYmUgW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XS4gV2Fz
IFtvYmplY3QgSURCUmVxdWVzdF0uCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJ
REJPcGVuREJSZXF1ZXN0XSIKIAorUEFTUyBJbiB0aGUgdXBncmFkZW5lZWRlZCBldmVudCBoYW5k
ZXI6CitUZXN0IDQuOC45LjE6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgU3RyaW5n
KGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCitUZXN0IDQuOC45LjM6CitQQVNTIGV2ZW50
Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK1BBU1MgZXZlbnQu
dGFyZ2V0LnJlYWR5U3RhdGUgaXMgImRvbmUiCitUZXN0IDQuMS40OgorUEFTUyBkYi5uYW1lIGlz
IGRibmFtZQorUEFTUyBkYi52ZXJzaW9uIGlzIDcKK1BBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5s
ZW5ndGggaXMgMAordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KK1BBU1Mg
U3RyaW5nKHRyYW5zYWN0aW9uKSBpcyAiW29iamVjdCBJREJUcmFuc2FjdGlvbl0iCitvcyA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzb21lT1MiKQorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRy
dWUKIAogb3BlblN1Y2Nlc3MoKToKIFRlc3QgNC4xLjcsIHRoYXQgYSB2ZXJzaW9uY2hhbmdlIHRy
YW5zYWN0aW9uIHdhcyBydW4uCi1GQUlMIHNhd1VwZ3JhZGVOZWVkZWQgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorUEFTUyBzYXdVcGdyYWRlTmVlZGVkIGlzIHRydWUKK1BBU1Mgc2F3VHJhbnNh
Y3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIEtpbmQgb2Yg
dGVzdCA0LjEuOToKIFBBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCi1G
QUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlw
ZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158433</attachid>
            <date>2012-08-14 16:06:26 -0700</date>
            <delta_ts>2012-08-14 18:08:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120814160554.patch</filename>
            <type>text/plain</type>
            <size>86848</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRmNmRmM2NkNGZiZmFi
NjUxODkzMzIzNWQyZTZhMGI2MzE2MjU4OC4uZWE5MTIzZGI0MDE0OGMyNjcxZDA3MzJkYjA5NGUz
MDM1ZGFmMDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6Y2xlYXJUcmFuc2FjdGlvblByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpvbkJsb2NrZWQpOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICBXZSBub3cgdGFrZSBhIHBv
aW50ZXIgdG8gdGhlIG9wZW5EQlJlcXVlc3QgaWYgdGhpcyBpcyBhIHZlcnNpb24KKyAgICAgICAg
Y2hhbmdlIHRyYW5zYWN0aW9uIGFzIGEgcmVzdWx0IG9mIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNh
bGwgc28gdGhhdCB3ZQorICAgICAgICBjYW4gY2xlYXIgdGhlIHRyYW5zYWN0aW9uIHByb3BlcnR5
IG9uIHRoZSBvcGVuREJSZXF1ZXN0IGFzIHNvb24gYXMgdGhlCisgICAgICAgIHVwZ3JhZGVuZWVk
ZWQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBwZXIgdGhlIHNwZWMgKCIuLi4gc2V0IHJlcXVlc3Qncwor
ICAgICAgICB0cmFuc2FjdGlvbiBwcm9wZXJ0eSB0byBudWxsLi4uICIsIGN1cnJlbnRseSA0Ljgu
MTIpLgorCisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpzZXRBY3RpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKElEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpJREJVcGdyYWRlTmVlZGVkRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50Ojp+SURCVXBncmFk
ZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
b2xkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om5l
d1ZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRl
cmZhY2VOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElEQlVw
Z3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFk
ZU5lZWRlZEV2ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTE0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWls
LnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAyOGJlNGJiMzBmYTYzNjVmYzU2MWQ5ODhiY2RmZmJhYWM3NDcx
NjVlLi5hZDgxMGEzOWUyY2E2MmI4MzQxNTEzMjkzM2Y5ZTEyNDY2ZjAzOGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE0ICBEYXZpZCBHcm9n
YW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZyb250ZW5k
IGFuZCBwbHVtYmluZyBmb3IgaW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJD
YWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZlcnNpb24p
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKToKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHku
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRmFjdG9yeUJh
Y2tlbmRQcm94eTo6b3Blbik6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHku
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9JREJU
cmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZSk6CisgICAgICAgICogc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpX
ZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1w
bDo6b25TdWNjZXNzKToKKyAgICAgICAgV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkgYWdhaW4gaWYgd2UndmUgYWxyZWFkeQorICAgICAgICBjcmVhdGVkIGl0
IGR1cmluZyB1cGdyYWRlTmVlZGVkLiAgVGhpcyBtYWtlcworICAgICAgICBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kKSByZXVzZSBpdHMgcHJldmlvdXMKKyAgICAgICAg
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIGlmIGl0IGhhcyBvbmUuCisKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZCk6
CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNh
bGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVy
c2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkRhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
OgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFj
dG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Blbik6
CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJREJGYWN0
b3J5SW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25D
b21wbGV0ZSk6CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2Vu
ZFRlc3QuY3BwOgorCiAyMDEyLTA4LTE0ICBJYWluIE1lcnJpY2sgIDxodXNreUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYSB0ZXN0IHRvIFdlYkZyYW1lVGVzdCBmb3Ig
c2VsZWN0UmFuZ2UgYW5kIHZpc2libGVQb3NpdGlvbkZvcldpbmRvd1BvaW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDVjM2Rm
Y2I2YjU0MmMxYmUwNmIyNDFiNDdjZTliYWNiOWI2NjI5YjQuLjljYWE2YjM4MzAwNzAwNTI4YzUw
ZWY3ZTYxNmJiNDU1Y2U2MWJlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJREJP
YmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbi5oIgorI2luY2x1ZGUgIklEQlVwZ3JhZGVOZWVkZWRFdmVudC5oIgogI2luY2x1ZGUg
IklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMjA4LDYgKzIw
OSw3IEBAIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkRhdGFiYXNlOjpz
ZXRWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAgfQogCiAgICAgUmVmUHRyPElEQlZl
cnNpb25DaGFuZ2VSZXF1ZXN0PiByZXF1ZXN0ID0gSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgdmVyc2lvbik7CisgICAgQVNTRVJU
KG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5zZXRWZXJzaW9uKHZlcnNpb24sIHJlcXVlc3Qs
IG1fZGF0YWJhc2VDYWxsYmFja3MsIGVjKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTMw
MSw2ICszMDMsMTcgQEAgdm9pZCBJREJEYXRhYmFzZTo6Y2xvc2VDb25uZWN0aW9uKCkKICAgICB9
CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IGV4aXN0aW5n
VmVyc2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQoreworICAgIGlmIChtX2NvbnRleHRT
dG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX2Nsb3NlUGVuZGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgZW5xdWV1ZUV2
ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKGV4aXN0aW5nVmVyc2lvbiwgcmVxdWVz
dGVkVmVyc2lvbiwgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOworfQorCiB2b2lk
IElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewog
ICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCkBA
IC0zMTQsNiArMzI3LDcgQEAgdm9pZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0
IFN0cmluZyYgdmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZTo6cmVnaXN0ZXJGcm9udGVuZENh
bGxiYWNrcygpCiB7CisgICAgQVNTRVJUKG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5yZWdp
c3RlckZyb250ZW5kQ2FsbGJhY2tzKG1fZGF0YWJhc2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMy
NmE1ODgzZGNmMzk0NzNjYWExMDk3MjkwNWYzZmU2NzVlLi5kNjljMWJiNmVmODBkNGJkMjA4YWI1
ODY3OTdmY2Q3ZTE0ZmFlMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIodmVyc2lvbmNoYW5nZSk7CiAKICAgICAvLyBJREJEYXRh
YmFzZUNhbGxiYWNrcworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBl
eGlzdGluZ1ZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgdmlydHVhbCB2
b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pOwogCiAg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGEzMTI1MWM4
ZDYzNzg1MGNmODdhZDhjYTRjMmU5ZWUxYTVhMjhlYjAuLmY5YjFhZWU1ZWZlNzZiODUzMjQ4YWY4
Y2IyZjUxNDJkODBjNzI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC00NDQsMTAgKzQ0
NCw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1ZXN0ZWRWZXJz
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzKQogewotICAgIC8vIEZJ
WE1FOiBUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIHJlYWNoZWQgdW50aWwgaXQncyBleHBvc2VkIHRv
IHNjcmlwdCBpbgotICAgIC8vIHdiay51Zy85Mjg5Ny4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLQogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyA9IHBycENhbGxiYWNrczsK
ICAgICBBU1NFUlQoY2FsbGJhY2tzKTsKICAgICBmb3IgKERhdGFiYXNlQ2FsbGJhY2tzU2V0Ojpj
b25zdF9pdGVyYXRvciBpdCA9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYmVnaW4oKTsgaXQgIT0g
bV9kYXRhYmFzZUNhbGxiYWNrc1NldC5lbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXgg
MTZhOWVhNmM1MDhiMGQ5MmI2MWU0OTk3YzU0MzAxMzJhNmQyYWNhYS4uMjcyZDcyOTZiYjk3NWMw
OGY5ZTI3MTU1ZmFjNWMxZGE1MjkwZWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3QgY3VycmVudFZlcnNp
b24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBjdXJyZW50VmVyc2lvbiwg
aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCAxOTQxMmZjYmU1MGFiNDRiZjUzZGMw
MWUwM2Q4ODUzZTI4ZjdjNWZmLi5mNzE3YWRiZDU1MWQ0NDJlYmI4ZmQ5OGRkOGE3Y2ZkOTBkNjli
Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTUyLDYgKzUyLDEyIEBAIHZvaWQg
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKQogICAgICAgICBtX2RhdGFiYXNlLT5vblZlcnNpb25DaGFuZ2UodmVyc2lvbik7CiB9
CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoaW50NjRf
dCBjdXJyZW50VmVyc2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQoreworICAgIGlmICht
X2RhdGFiYXNlKQorICAgICAgICBtX2RhdGFiYXNlLT5vblZlcnNpb25DaGFuZ2UoY3VycmVudFZl
cnNpb24sIHJlcXVlc3RlZFZlcnNpb24pOworfQorCiB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbDo6dW5yZWdpc3RlckRhdGFiYXNlKElEQkRhdGFiYXNlKiBkYXRhYmFzZSkKIHsKICAgICBB
U1NFUlRfVU5VU0VEKGRhdGFiYXNlLCBkYXRhYmFzZSA9PSBtX2RhdGFiYXNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmgKaW5kZXggZThiMWY5OWI4MzhhZjdiOTM3ZDk0YjdhZjhmN2Y3ZGZiODJiZTdm
Yi4uMDgwZjViYTg3YmZkNjgyNWM1NTVmYzhkNWQwZjdmNzY2NzQzYTQyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5n
ZShjb25zdCBTdHJpbmcmIHZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFu
Z2UoaW50NjRfdCBjdXJyZW50VmVyc2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKICAg
ICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBj
ZjUyY2MxZmUyYjEzNTViNmM1NGVkY2UyNjVlMGYzZThjM2E1ZTkxLi5jODNiYTM2NDVkYmY2ZDM5
ODNjOWNjYTdkN2IzN2FiMTUwNzcyYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIklE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVk
ZSAiSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURC
T3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMTA1LDcgKzEwNSw3
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFz
c1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSkgewogICAgICAgICBl
YyA9IE5BVElWRV9UWVBFX0VSUjsKQEAgLTExNCwxMSArMTE0LDE2IEBAIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBTCiAgICAgaWYgKCFpc0NvbnRleHRWYWxpZChjb250ZXh0KSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAgbV9iYWNrZW5kLT5v
cGVuKG5hbWUsIHJlcXVlc3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdl
dEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IHJlcXVlc3QgPSBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcyksIHZlcnNpb24pOworICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJz
aW9uLCByZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRl
eGVkREJEYXRhYmFzZVBhdGgoY29udGV4dCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitQ
YXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICByZXR1cm4gb3Blbihjb250ZXh0LCBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRh
OjpOb0ludFZlcnNpb24sIGVjKTsKK30KKwogUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAobmFtZS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5oCmluZGV4IDQ2MTFjYjZjNGZlODM5OTBiNDcyNGE0M2JmMDljOWE1YTk1ZDg4
OGQuLjM2NDViYjgxZGM3ZWU5NjY5MDVkYTY1MmMwNjRkYTczODZmNjUzZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJP
cGVuREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01OCw3ICs1
OCw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VO
YW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7
CisgICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IGRlbGV0ZURhdGFi
YXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIHNob3J0IGNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NS
ZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggMDM4OWViMmFhZTdlMTI5
OTU0ZDlhY2YwM2E1OWZmYmNjN2ZiYWFjYy4uYmY3MWEyZGQyNWQxZmY5NWUyNjQzNWY0ZTQxZjBj
NDFiOTc2NzJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5pZGwKQEAgLTMwLDcgKzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIF0gSURC
RmFjdG9yeSB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBs
ZW1lbnRlZEFzPWdldERhdGFiYXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VO
YW1lcygpOwogCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJS
ZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUs
IGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pCiAgICAgICAgICAgICBy
YWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGlu
IERPTVN0cmluZyBuYW1lKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmNwcAppbmRleCA2M2JkNDc4M2U1NGFlMzFmNGQ0OTU5NmYzYjYw
ZDlhZjgyNTRjOWRjLi44ZGE1YzAyZTQyM2Y2ZjY0ZTU3OTczMGRiNzNmYTI5ZWMyYmU0NjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5jcHAKQEAgLTE1MCwxMCArMTUwLDggQEAgUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNz
UmVmUHRyPFMKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6
Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURC
RmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJz
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKIHsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEg
cGFyYW1ldGVyIGFuZCBwbHVtYiB0aHJvdWdoIGZyb20gamF2YXNjcmlwdC4KLSAgICBpbnQ2NF90
IHZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CiAgICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAg
IGNvbnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIo
bmFtZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IGNhMWQw
NTI4MmE4YzVlZGY3NjZkNWU1NTUwOGZhZTBhOWMwNDhjNjUuLmNhZDNiNWEyNGIyOTlhOTI5OWMy
YWQyOTRlM2IyZWEwNGNmZDcyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0
cmluZyYgZmlsZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFt
ZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7
CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYy
MWVhNDcxOWY2MzY5NDI5Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0
NGVhNDhhY2Y2NjZmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzZjhlOTc5YzU3Njg3MDgyMjllZjdhNmQzZDM5MTBm
NTI2MGUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRl
ICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5l
ZWRlZEV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRC
UmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQ
dHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKK3sKKyAgICBSZWZQdHI8SURCT3Bl
bkRCUmVxdWVzdD4gcmVxdWVzdChhZG9wdFJlZihuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0
LCBzb3VyY2UsIHZlcnNpb24pKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitJREJPcGVuREJSZXF1ZXN0OjpJREJP
cGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKKyAgICA6IElEQlJlcXVlc3QoY29udGV4
dCwgc291cmNlLCAwKQorICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCit7CisgICAgQVNTRVJUKCFt
X3Jlc3VsdCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KCkKK3sK
K30KKworY29uc3QgQXRvbWljU3RyaW5nJiBJREJPcGVuREJSZXF1ZXN0OjppbnRlcmZhY2VOYW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQk9wZW5E
QlJlcXVlc3Q7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qg
b2xkVmVyc2lvbikKK3sKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdl
LmlzTnVsbCgpICYmICFtX3Jlc3VsdCk7CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLmJsb2Nr
ZWRFdmVudCkpOworfQorCit2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChp
bnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiBwcnBUcmFuc2FjdGlvbkJhY2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlPiBwcnBEYXRhYmFzZUJhY2tlbmQpCit7CisgICAgaWYgKCFzaG91bGRFbnF1ZXVl
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kID0gcHJwRGF0YWJhc2VCYWNrZW5kOworICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9
IHBycFRyYW5zYWN0aW9uQmFja2VuZDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFi
YXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGFi
YXNlQmFja2VuZCk7CisKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURC
VHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9u
QmFja2VuZCwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQo
KSwgdGhpcyk7CisgICAgdHJhbnNhY3Rpb25CYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQu
Z2V0KCkpOworICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9udGVuZDsKKyAgICBtX3Jlc3VsdCA9IElE
QkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CisKKyAgICBpZiAob2xkVmVyc2lv
biA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pIHsKKyAgICAgIC8vIFRoaXMg
ZGF0YWJhc2UgaGFzbid0IGhhZCBhbiBpbnRlZ2VyIHZlcnNpb24gYmVmb3JlLgorICAgICAgb2xk
VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIH0K
KyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lv
biwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7Cit9CisKK2Jv
b2wgSURCT3BlbkRCUmVxdWVzdDo6c2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QKK3sKKyAgICBp
ZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1f
cmVhZHlTdGF0ZSA9PSBET05FKTsKKyAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3NDJmMWY0M2E4ZjZmNzcxYWYxMjg1
NjAyNGZmNjgyODVhY2JiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBJREJPcGVuREJSZXF1ZXN0X2gKKyNkZWZpbmUgSURCT3BlbkRCUmVxdWVzdF9oCisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJPcGVuREJSZXF1ZXN0IDogcHVibGlj
IElEQlJlcXVlc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+
IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0
KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9u
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xk
VmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworCisgICAgLy8g
RXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFt
ZSgpIGNvbnN0OworCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihibG9ja2Vk
KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHVwZ3JhZGVuZWVkZWQpOwor
Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0
IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbik7
CisKKyAgICBpbnQ2NF90IG1fdmVyc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCT3Bl
bkRCUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjZjNzM1OWEwYTY1ZTY5NWIwODQ1
ZGU1ZjUzNTgzYTZjZDgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9u
YWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgICAgICBF
dmVudFRhcmdldAorICAgIF0gSURCT3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3QgeworICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9udXBncmFkZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBmMDg4NmM2NmNiMWRm
Y2RjZjA0YzEwM2ZlYTFkNThjMzA1OGU5MjRhLi45NjU1MTVkMzg4YjA0NTg0NWM3ODU2YzFjOTEw
YzczNzAzNjRhMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcApAQCAtNTMsMTUgKzUzLDE3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9u
KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jlc3VsdCgw
KQogICAgICwgbV9lcnJvckNvZGUoMCkKLSAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1f
Y29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQog
ICAgICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcpCiAgICAgLCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNl
KQotICAgICwgbV9jb250ZXh0U3RvcHBlZChmYWxzZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkK
ICAgICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vy
c29yVHlwZSkKICAgICAsIG1fY3Vyc29yRGlyZWN0aW9uKElEQkN1cnNvcjo6TkVYVCkKICAgICAs
IG1fcGVuZGluZ0N1cnNvcigwKQorICAgICwgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50KGZh
bHNlKQogewogICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24t
PnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKQEAgLTI3NywxMCArMjc5LDE2IEBAIHZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBi
YWNrZW5kKQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7Ci0gICAgaWRiRGF0YWJhc2Ut
PnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKLQotICAgIG1fcmVzdWx0ID0gSURCQW55Ojpj
cmVhdGUoaWRiRGF0YWJhc2UucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlk
YkRhdGFiYXNlOworICAgIGlmIChtX3Jlc3VsdCkgeworICAgICAgICBpZGJEYXRhYmFzZSA9IG1f
cmVzdWx0LT5pZGJEYXRhYmFzZSgpOworICAgICAgICBBU1NFUlQoaWRiRGF0YWJhc2UpOworICAg
ICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIGJhY2tlbmQpOworICAgICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcygpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlk
YkRhdGFiYXNlLnJlbGVhc2UoKSk7CisgICAgfQogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNj
ZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTQyNiw4ICs0MzQsNyBAQCBib29sIElEQlJlcXVlc3Q6OmRp
c3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgQVNTRVJUKG1fZW5xdWV1
ZWRFdmVudHMuc2l6ZSgpKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ICAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMpOwotICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSwgIm1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMg
JWQiLCBET05FLCBtX3JlYWR5U3RhdGUpOwotCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3Jl
YWR5U3RhdGUgPCBET05FLCAiV2hlbiBkaXNwYXRjaGluZyBldmVudCAlcywgbV9yZWFkeVN0YXRl
IDwgRE9ORSglZCksIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgRE9ORSwgbV9yZWFkeVN0YXRlKTsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5h
bWVzKCkuYmxvY2tlZEV2ZW50KQogICAgICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogCkBAIC00
NTYsMTEgKzQ2MywxMiBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQpCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3Vz
dG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2Uu
Ci0gICAgQVNTRVJUKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IHx8IGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCk7Ci0gICAgY29uc3QgYm9vbCBzZXRUcmFu
c2FjdGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJy
b3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JU
X0VSUikpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9y
RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50IHx8IGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCwgImV2ZW50IHR5
cGUgd2FzICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBj
b25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SURCX0FCT1JUX0VSUikpOwogCiAgICAgaWYgKHNldFRyYW5zYWN0aW9uQWN0aXZlKQogICAg
ICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3RpdmUodHJ1ZSk7CisKICAgICBib29sIGRvbnRQcmV2
ZW50RGVmYXVsdCA9IElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0KCksIHRh
cmdldHMpOwogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkKICAgICAgICAgbV90cmFuc2Fj
dGlvbi0+c2V0QWN0aXZlKGZhbHNlKTsKQEAgLTQ2OCw2ICs0NzYsMTEgQEAgYm9vbCBJREJSZXF1
ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmIChjdXJz
b3JUb05vdGlmeSkKICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnBvc3RTdWNjZXNzSGFuZGxlckNh
bGxiYWNrKCk7CiAKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFk
ZW5lZWRlZEV2ZW50KSB7CisgICAgICAgIEFTU0VSVCghbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2
ZW50KTsKKyAgICAgICAgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZTsKKyAgICB9
CisKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBkb250UHJldmVudERlZmF1bHQgJiYgIW1fcmVx
dWVzdEFib3J0ZWQpIHsKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnNldEVycm9yKG1fZXJy
b3IpOwpAQCAtNDk0LDYgKzUwNywxNiBAQCB2b2lkIElEQlJlcXVlc3Q6OnVuY2F1Z2h0RXhjZXB0
aW9uSW5FdmVudEhhbmRsZXIoKQogICAgIH0KIH0KIAordm9pZCBJREJSZXF1ZXN0OjpjbGVhclRy
YW5zYWN0aW9uUHJvcGVydHkoKQoreworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uKTsKKyAgICBB
U1NFUlQobV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7
Cit9CisKIHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogewogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3Rh
dGUgPT0gRE9ORSk7CkBAIC01MDEsNyArNTI0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVl
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQg
fHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1f
cmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCwgIldo
ZW4gcXVldWVpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcmVhZHlTdGF0ZSk7CiAKICAgICBFdmVudFF1ZXVl
KiBldmVudFF1ZXVlID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudFF1ZXVlKCk7CiAg
ICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBkODFjM2Y3ODRhY2E0ZjYyZGRhM2U4NTJmNGE1OTQz
NDlkMDkzYjU1Li5iNzkyZjM4ODg5ZDRmZTMyMWRiZWJmMmZhNmI3MDU2MzJhNzAwZDI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC05MCw2
ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRj
aChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURC
S2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hv
dWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lv
bikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAg
ICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwpAQCAt
MTAyLDE4ICsxMDMsMjQgQEAgcHVibGljOgogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIEV2ZW50VGFyZ2V0
OjpkaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5jYXVnaHRF
eGNlcHRpb25JbkV2ZW50SGFuZGxlcigpOwogCisgICAgdm9pZCBjbGVhclRyYW5zYWN0aW9uUHJv
cGVydHkoKTsKKwogICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46
OnJlZjsKICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJl
ZjsKIAogcHJvdGVjdGVkOgogICAgIElEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CiAgICAgdm9pZCBl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwotICAgIGJvb2wgc2hvdWxkRW5xdWV1ZUV2
ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0
OwogCiAgICAgUmVmUHRyPElEQkFueT4gbV9yZXN1bHQ7CiAgICAgdW5zaWduZWQgc2hvcnQgbV9l
cnJvckNvZGU7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIFJlZlB0cjxET01FcnJv
cj4gbV9lcnJvcjsKKyAgICBib29sIG1fY29udGV4dFN0b3BwZWQ7CisgICAgUmVmUHRyPElEQlRy
YW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOworICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwor
ICAgIGJvb2wgbV9yZXF1ZXN0QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rp
b24gdGhlbiByZWNlaXZlIGFzeW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCiAKIHBy
aXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQKQEAgLTEyNiwxMSArMTMzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4sIFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPik7CiAKICAgICBSZWZQdHI8SURCQW55PiBtX3NvdXJjZTsKLSAg
ICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247CiAKLSAgICBSZWFkeVN0YXRl
IG1fcmVhZHlTdGF0ZTsKLSAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9y
dGVkIGJ5IHRyYW5zYWN0aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2
cy4gYXNzZXJ0LgotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZDsKICAgICBWZWN0b3I8UmVmUHRy
PEV2ZW50PiA+IG1fZW5xdWV1ZWRFdmVudHM7CiAKICAgICAvLyBPbmx5IHVzZWQgaWYgdGhlIHJl
c3VsdCB0eXBlIHdpbGwgYmUgYSBjdXJzb3IuCkBAIC0xNDAsNiArMTQzLDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvcktleTsKICAgICBSZWZQdHI8SURCS2V5PiBtX2N1
cnNvclByaW1hcnlLZXk7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9jdXJz
b3JWYWx1ZTsKKyAgICBib29sIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudDsKIAogICAgIEV2
ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggNzYxMjM0NzAx
NDE4M2M5ZGE2MWU4ZGJhZmU2NWZhMzg1OTk5MzQ3ZS4uNDc5NmIxNDExZjdhNDRkM2VkYjdkMmU0
MTZmNDY0MGFhZjJiNDkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIklE
QkluZGV4LmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIklE
QlRyYWNpbmcuaCIKIApAQCAtNDMsNyArNDQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFz
ZSogZGIpCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihhZG9wdFJl
ZihuZXcgSURCVHJhbnNhY3Rpb24oY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIpKSk7CisgICAg
SURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCA9IDA7CisgICAgcmV0dXJuIGNyZWF0ZShj
b250ZXh0LCBiYWNrZW5kLCBtb2RlLCBkYiwgb3BlbkRCUmVxdWVzdCk7Cit9CisKK1Bhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYiwg
SURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8SURCVHJhbnNh
Y3Rpb24+IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBi
YWNrZW5kLCBtb2RlLCBkYiwgb3BlbkRCUmVxdWVzdCkpKTsKICAgICB0cmFuc2FjdGlvbi0+c3Vz
cGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLnJlbGVhc2UoKTsKIH0KQEAg
LTc5LDEwICs4NiwxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2Rl
UmVhZFdyaXRlTGVnYWN5KCkKIH0KIAogCi1JREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElE
QkRhdGFiYXNlKiBkYikKK0lEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2Uq
IGRiLCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQogICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fZGF0
YWJhc2UoZGIpCisgICAgLCBtX29wZW5EQlJlcXVlc3Qob3BlbkRCUmVxdWVzdCkKICAgICAsIG1f
bW9kZShtb2RlKQogICAgICwgbV9hY3RpdmUodHJ1ZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQpA
QCAtMTgyLDcgKzE5MCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlRGVsZXRl
ZChjb25zdCBTdHJpbmcmIG5hbWUpCiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OnNldEFjdGl2ZShi
b29sIGFjdGl2ZSkKIHsKLSAgICBBU1NFUlQobV9zdGF0ZSAhPSBGaW5pc2hlZCk7CisgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShtX3N0YXRlICE9IEZpbmlzaGVkLCAiQSBmaW5pc2hlZCB0cmFuc2Fj
dGlvbiB0cmllZCB0byBzZXRBY3RpdmUoJXMpIGluICVwIiwgYWN0aXZlID8gInRydWUiIDogImZh
bHNlIiwgdGhpcyk7CiAgICAgaWYgKG1fc3RhdGUgPT0gRmluaXNoaW5nKQogICAgICAgICByZXR1
cm47CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gVW51c2VkIHx8IG1fc3RhdGUgPT0gVXNlZCk7CkBA
IC0zNzUsNyArMzgzLDEyIEBAIGJvb2wgSURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCiAKICAgICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0
b20gZXZlbnQgZGlzcGF0Y2hpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4K
ICAgICBBU1NFUlQoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY29tcGxldGVFdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKLSAgICByZXR1cm4g
SURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CisgICAg
Ym9vbCByZXR1cm5WYWx1ZSA9IElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0
KCksIHRhcmdldHMpOworICAgIC8vIEZJWE1FOiBUcnkgdG8gY29uc3RydWN0IGEgdGVzdCB3aGVy
ZSB8dGhpc3wgb3V0bGl2ZXMgb3BlbkRCUmVxdWVzdCBhbmQgd2UKKyAgICAvLyBnZXQgYSBjcmFz
aC4KKyAgICBpZiAobV9vcGVuREJSZXF1ZXN0KQorICAgICAgICBtX29wZW5EQlJlcXVlc3QtPmNs
ZWFyVHJhbnNhY3Rpb25Qcm9wZXJ0eSgpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAog
Ym9vbCBJREJUcmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCAxZjdhZjdkYWQx
YmU5NDhmNmI0MTk1N2Y3OWU1ZjY4NzQyYjk5YWYwLi4wMDVlMzczNjMwYTRkMmZmMmViYWZkODFl
ZTM2ZWEwYzk4OWE5MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgSURCQ3Vyc29yOwogY2xhc3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJPYmplY3RT
dG9yZTsKK2NsYXNzIElEQk9wZW5EQlJlcXVlc3Q7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uIDog
cHVibGljIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgpAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3Bl
bkRCUmVxdWVzdCopOwogICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uKCk7CiAKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2RlUmVhZE9ubHkoKTsKQEAgLTExOSw3ICsxMjEsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz46
OmRlcmVmOwogCiBwcml2YXRlOgotICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIE1vZGUs
IElEQkRhdGFiYXNlKik7CisgICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURC
RGF0YWJhc2UqLCBJREJPcGVuREJSZXF1ZXN0Kik7CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQ
YXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBjbG9zZU9wZW5DdXJzb3JzKCk7CkBAIC0xNDIs
NiArMTQ0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IG1fYmFja2VuZDsKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7
CisgICAgSURCT3BlbkRCUmVxdWVzdCogbV9vcGVuREJSZXF1ZXN0OwogICAgIGNvbnN0IE1vZGUg
bV9tb2RlOwogICAgIGJvb2wgbV9hY3RpdmU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMjA1NDU4ZTRmNDc5NTlhM2VjODkwNGJhNTYwNmMyZjEy
ZDE5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRlZEV2ZW50LmgiCisKKyNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNp
bmNsdWRlICJJREJBbnkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPElE
QlVwZ3JhZGVOZWVkZWRFdmVudD4gSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUoaW50NjRf
dCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVXBncmFkZU5lZWRlZEV2ZW50
KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50VHlwZSkpOworfQorCitJREJVcGdyYWRlTmVl
ZGVkRXZlbnQ6OklEQlVwZ3JhZGVOZWVkZWRFdmVudChpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0
X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCisgICAgOiBFdmVu
dChldmVudFR5cGUsIGZhbHNlIC8qY2FuQnViYmxlKi8sIGZhbHNlIC8qY2FuY2VsYWJsZSovKQor
ICAgICwgbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24pCisgICAgLCBtX25ld1ZlcnNpb24obmV3VmVy
c2lvbikKK3sKK30KKworSURCVXBncmFkZU5lZWRlZEV2ZW50Ojp+SURCVXBncmFkZU5lZWRlZEV2
ZW50KCkKK3sKK30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24o
KQoreworICAgIHJldHVybiBtX29sZFZlcnNpb247Cit9CisKK2ludDY0X3QgSURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKCkKK3sKKyAgICByZXR1cm4gbV9uZXdWZXJzaW9uOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6aW50ZXJmYWNlTmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JJREJVcGdy
YWRlTmVlZGVkRXZlbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVl
ZGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNjcxZDI0NDhhNzYxMDgxMmZiZjU1MDA5Yzk2MmFj
NGEyMDVlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaAorI2RlZmluZSBJREJVcGdyYWRlTmVlZGVkRXZl
bnRfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJBbnk7CisKK2NsYXNzIElEQlVwZ3JhZGVO
ZWVkZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCVXBncmFkZU5lZWRlZEV2ZW50PiBjcmVhdGUoaW50NjRfdCBvbGRWZXJzaW9uID0gSURC
RGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24gPSBJREJE
YXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlID0gQXRvbWljU3RyaW5nKCkpOworICAgIHZpcnR1YWwgfklEQlVwZ3JhZGVOZWVkZWRFdmVu
dCgpOworCisgICAgdmlydHVhbCBpbnQ2NF90IG9sZFZlcnNpb24oKTsKKyAgICB2aXJ0dWFsIGlu
dDY0X3QgbmV3VmVyc2lvbigpOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGlu
dGVyZmFjZU5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBJREJVcGdyYWRlTmVlZGVkRXZl
bnQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlKTsKKworICAgIGludDY0X3QgbV9vbGRWZXJzaW9uOworICAgIGludDY0
X3QgbV9uZXdWZXJzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBJREJVcGdyYWRlTmVlZGVk
RXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc3YjAwMGQ0MjJmYjcyN2Q0
MDA4MjM2OThhNDAxMWQyMjFkNTdhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKKyAgICBdIElEQlVwZ3JhZGVOZWVkZWRFdmVu
dCA6IEV2ZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9u
ZyBvbGRWZXJzaW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
b25nIG5ld1ZlcnNpb247CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxMTg4NzczZTk5
MzNjNDVmYjdkMjdlOTRjYzdhNWRiMjA2OWNkYzk2Li5jYmY0MWE4MzM2MzAwNTI2OTRjODJhNTU5
NjM4YzBiYzY3NWZjMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC04MjEsOCArODIxLDEwIEBACiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdy
YWRlTmVlZGVkRXZlbnQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsJywKQEAgLTE1MTQsNiArMTUxNiw4
IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwJywKQEAgLTE1MjcsNiArMTUzMSw4IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5j
cHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5l
ZWRlZEV2ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25D
aGFuZ2VFdmVudC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VFdmVudC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJz
aW9uQ2hhbmdlUmVxdWVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNmQwYTEw
NTczOGRhOWU4MGE1YTgzMzk3MDdiNDMxYWQ5MDIzZGEzMi4uYTJmYWVjMTI4MzRiYmE4NDg4Yzc0
ZmZmM2RhZDg1MTU4MGY2MDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMTUsNiAr
MTE1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHRleHRJbnB1dCkgXAogICAg
IG1hY3JvKHVubG9hZCkgXAogICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCisgICAgbWFjcm8odXBn
cmFkZW5lZWRlZCkgXAogICAgIG1hY3JvKHZlcnNpb25jaGFuZ2UpIFwKICAgICBtYWNybyh3ZWJr
aXR2aXNpYmlsaXR5Y2hhbmdlKSBcCiAgICAgbWFjcm8od3JpdGUpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KaW5kZXggNWRhNTdmZmM2Y2Y0MzI2N2E1ZWMzYmUzMzc1OTViNmNmZTU0ZjgyOC4u
MjJhYWE3YjA3MGM0YmI0MmIxNDJlMTFiZGM5YjM3OWI1N2M0NWY1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KQEAgLTM5LDYgKzM5LDcgQEAgU3RvcmFnZUV2ZW50CiBTVkdFdmVudHMgaW50
ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZlbnQgY29uZGl0aW9u
YWw9U1ZHCiBTVkdab29tRXZlbnRzIGludGVyZmFjZU5hbWU9U1ZHWm9vbUV2ZW50LCBjb25kaXRp
b25hbD1TVkcKK0lEQlVwZ3JhZGVOZWVkZWRFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFC
QVNFCiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQog
VG91Y2hFdmVudCBjb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsIHJ1bnRpbWVDb25kaXRpb25hbD10
b3VjaEVuYWJsZWQKIERldmljZU1vdGlvbkV2ZW50IGNvbmRpdGlvbmFsPURFVklDRV9PUklFTlRB
VElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5p
biBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNmQ5NzJj
Mzk2ZDc2MzMyZTFhMGIyNjU3MzFhZTNkYjhhNDlmMjFlOS4uNzkxYmQ0ZWRhNWNhMzdhZjQ1Nzgz
NjM0OTc3OTUxMzA3NGMyZDJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluCkBAIC05LDYgKzksNyBAQCBFdmVudFNvdXJjZQogRmlsZVJlYWRlciBjb25kaXRpb25h
bD1CTE9CCiBGaWxlV3JpdGVyIGNvbmRpdGlvbmFsPUZJTEVfU1lTVEVNCiBJREJEYXRhYmFzZSBj
b25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCitJREJPcGVuREJSZXF1ZXN0IGNvbmRpdGlvbmFs
PUlOREVYRURfREFUQUJBU0UKIElEQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFT
RQogSURCVHJhbnNhY3Rpb24gY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXgg
MzJiMjliNTYzZDZhNTcyMWMxMzUyYmZkNWE2NDMzOGYxYWI3NTIxNS4uZTE1YjMwZDllNDNmMTU1
M2Q0MTVhODI0ZTRhMTU0NThmYzQ2NDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lv
bikgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNp
b24sIGludDY0X3QgbmV3VmVyc2lvbikgeyB9CiBwcml2YXRlOgogICAgIEluc3BlY3RvcklEQkRh
dGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9OwpAQCAtMjM3LDcgKzIzOCw3IEBAIHByaXZhdGU6CiB2
b2lkIEV4ZWN1dGFibGVXaXRoRGF0YWJhc2U6OnN0YXJ0KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJm
YWNlKiBpZGJGYWN0b3J5LCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewog
ICAgIFJlZlB0cjxPcGVuRGF0YWJhc2VDYWxsYmFjaz4gY2FsbGJhY2sgPSBPcGVuRGF0YWJhc2VD
YWxsYmFjazo6Y3JlYXRlKHRoaXMpOwotICAgIGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1l
LCBjYWxsYmFjay5nZXQoKSwgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKKyAg
ICBpZGJGYWN0b3J5LT5vcGVuKGRhdGFiYXNlTmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9J
bnRWZXJzaW9uLCBjYWxsYmFjay5nZXQoKSwgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmlu
ZygpKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiB0cmFuc2FjdGlvbkZvckRhdGFiYXNlKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSog
aWRiRGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdkMmM5Y2Y5
OWMxMjNmMDlhNDQxNDMzZjkwMDgwMDI0Y2QwOTc4YjEuLjE5M2JmMmI1ZjZjNjY2YzdiZDUwNjJh
ZDQ0NzQ0MTViZmIzMDQyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTEzMCw2ICsxMzAsMTYgQEAgdm9pZCBJREJDYWxsYmFj
a3NQcm94eTo6b25CbG9ja2VkKCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CiB9CiAK
K3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lv
bikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKGV4aXN0aW5nVmVyc2lvbik7Cit9CisK
K3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNp
b24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlv
biwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQorewor
ICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgbmV3IFdlYklEQlRy
YW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbiksIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJh
c2UpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5oCmluZGV4IDRjNzBiNjY2ZWFjODEzZjliOThlY2Y4NzJlNzhjZDI0ODZkNjdlMWEu
LjgyNTc1OGFhZGU5M2Y0MWYyNjI5MzAzNjhiZDk2NjYwZmU1MmE1MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNTYsNiArNTYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+
ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5
S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+
ID4mIHZhbHVlcyk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwg
dm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pOworICAgIHZpcnR1YWwgdm9p
ZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPik7CiAKIHByaXZhdGU6CiAgICAgSURCQ2FsbGJhY2tz
UHJveHkoUGFzc093blB0cjxXZWJJREJDYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAppbmRleCA5MDFi
NTVlNTRmMmFhZmUwNGZmZmMyMmNhOTZiMzUzMThlZjk0Nzg2Li41NmFmZTVmYjVkMmI2MmZhNDQ0
OTk1NDQ2OTMwYTAxZDBiYzk3Nzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSURCVHJhbnNhY3RpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNl
dFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxi
YWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgQVNTRVJUKG1fd2ViSURCRGF0YWJhc2Up
OwogICAgIG1fd2ViSURCRGF0YWJhc2UtPnNldFZlcnNpb24odmVyc2lvbiwgbmV3IFdlYklEQkNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgZWMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDgx
NmZhZjZjNGRlNzBhZTY5MjY5MzBkMGRlNTBlMGVlMmQxMTc4NWIuLjE1ZjkyOGYzOWFkMWRhNmYw
YmRhYWE5NzZjOGMyMGExYjU3NjQwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC00OCw2ICs0OCwx
MSBAQCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Ojp+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eSgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hh
bmdlKGludDY0X3QgY3VycmVudFZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3sK
KyAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKGN1cnJlbnRWZXJzaW9uLCByZXF1ZXN0
ZWRWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNp
b25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKQogewogICAgIG1fY2FsbGJh
Y2tzLT5vblZlcnNpb25DaGFuZ2UocmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKaW5kZXgg
YWZmZGNlNzdkNWQ5NThkYzAwZTBmNmY4MGFjZmZiODAxMjk1OGIzYi4uNGVlYmYwY2NiODFhZGQw
M2RiNTg5YzM5ZDVjYjAzYWVhM2QwOWNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaApAQCAtNDEsNiArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZl
cnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBjdXJyZW50
VmVyc2lvbiwgaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKIAogcHJpdmF0ZToKICAgICBJREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2VDYWxsYmFja3M+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tl
bmRQcm94eS5jcHAKaW5kZXggYzFiZWMxMDc3ZDZiY2Y0ODdlOTk0MWUwZWQyMWM2Y2JjNjE4NjAx
OS4uYmFiY2JhZTE4NDA5YzVkZDI1OTJjMGRmZDkyMzMyNmZiZjYwZTk0YSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAK
QEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFi
YXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogfQogCiAKLXZvaWQg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7
CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CiAgICAg
V2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKQEAgLTIxMSw3ICsyMTEs
NyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcAogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZUltcGwqIHdlYkZyYW1lID0gZ2V0V2ViRnJhbWUoY29udGV4dCk7Ci0gICAgbV93ZWJJREJG
YWN0b3J5LT5vcGVuKG5hbWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9y
aWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOworICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1l
LCB2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdl
YkZyYW1lLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpkZWxl
dGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5
LmgKaW5kZXggMjJhNmY1MmE4Njk4MTZjODA1NjY4ZDY4NGQwYTdiZmZmYzI2YWU2OS4uYzBkZTkx
MGE5MmNkZWE5MWEzZDNhMWM1MzBhMjgwN2M1YWJmYWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94eSgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDA4M2RiY2NiZTI2
NzVmMjA5OWI1MzU1N2Y0MDE2OGUzZTA4M2Q3NjcuLjJjYjkwZWE0NmU2M2FhYTY1MjgzOTY1YTFj
NGZlZTRjMDk1MjBhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCisg
ICAgLCBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkoZmFsc2UpCiB7CiB9CiAKQEAgLTcyLDYgKzcz
LDEwIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1cnNvciog
Y3Vyc29yLCBjb25zdCBXZWJJREJLZXkmIGtleSwKIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogeworICAgIGlmICht
X2RpZENyZWF0ZURhdGFiYXNlUHJveHkpIHsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHN0YXRpY19jYXN0PFdl
YklEQkRhdGFiYXNlKj4oMCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRy
KHdlYktpdEluc3RhbmNlKSkpOwogfQogCkBAIC0xMDUsNiArMTEwLDE3IEBAIHZvaWQgV2ViSURC
Q2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7
CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9uZyBvbGRW
ZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7Cit9CisK
K3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRW
ZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFdlYklEQkRhdGFiYXNlKiBk
YXRhYmFzZSkKK3sKKyAgICBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkgPSB0cnVlOworICAgIG1f
Y2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih0cmFuc2FjdGlvbikpLCBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDMwZDc0
MzZjNmE1OWY0ODk2MjkwNTI2MDJhZjg5Mzg0ODMyYjM5MjguLjMzY2QyMDI5ZmFjZmNkNTI5NWRk
NjY0NGFkMDFjYzdkYjc2OTkwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTUxLDkgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNv
bnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwg
Y29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxv
Y2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24p
OworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24s
IFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKKyAgICBib29sIG1fZGlk
Q3JlYXRlRGF0YWJhc2VQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5jcHAKaW5kZXggZmYwZTg5ODY0YjIxYTY0Njg5YjAzMTI2Y2FhZjNmZTU2NTlmYWYz
MS4uNjgyOGRmNmZmNjk2YWRlNDdlZjk0ZThiZDQwNzQyZjRhYjYxOWRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
On5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKQogewogfQogCit2b2lkIFdlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBjdXJyZW50VmVyc2lv
biwgbG9uZyBsb25nIHJlcXVlc3RlZFZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uVmVy
c2lvbkNoYW5nZShjdXJyZW50VmVyc2lvbiwgcmVxdWVzdGVkVmVyc2lvbik7Cit9CisKIHZvaWQg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3Ry
aW5nJiB2ZXJzaW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UodmVyc2lv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDIxYzNkYzdjNWFjNGFkMGJlYThkZjI5MTZlYmIzZjg4
YzY3ZmYwNWYuLjU3MzQ5MGJmZjMwNDJhNWNkYmY0YTE3NzFmNmE1ZGU0NDcyZTVkOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbC5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4p
OwogICAgIHZpcnR1YWwgfldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCisgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShsb25nIGxvbmcgY3VycmVudFZlcnNpb24sIGxvbmcg
bG9uZyByZXF1ZXN0ZWRWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdl
KGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCBiYzZkMDlmYTFm
Yjk3MGMyOTdlMTc3YTIxNTRlZTcxMDE4ZmFmZmY3Li45MzQzMjgxY2Y0ZDBhZjE3Y2I2YzMyMjUw
ODFkZjQwNzFkYWU4NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFdlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZUJhY2tlbmQpCiAgICAgOiBtX2RhdGFi
YXNlQmFja2VuZChkYXRhYmFzZUJhY2tlbmQpCisgICAgLCBtX2Nsb3NlUGVuZGluZyhmYWxzZSkK
IHsKIH0KIApAQCAtOTQsOCArOTUsMTAgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNsb3Nl
KCkKIHsKICAgICAvLyBVc2UgdGhlIGNhbGxiYWNrcyB0aGF0IDo6b3BlbiBnYXZlIHVzIHNvIHRo
YXQgdGhlIGJhY2tlbmQgaW4KICAgICAvLyBtdWx0aS1wcm9jZXNzIGNocm9taXVtIGtub3dzIHdo
aWNoIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZy4KLSAgICBpZiAoIW1fZGF0YWJhc2VD
YWxsYmFja3MpCisgICAgaWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzKSB7CisgICAgICAgIG1fY2xv
c2VQZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2RhdGFiYXNl
QmFja2VuZC0+Y2xvc2UobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kYXRhYmFzZUNhbGxi
YWNrcyA9IDA7CiB9CkBAIC0xMDUsNiArMTA4LDggQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6
Om9wZW4oV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGNhbGxiYWNrcykKICAgICBBU1NFUlQoIW1f
ZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3MgPSBJREJEYXRhYmFz
ZUNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSk7CiAgICAgbV9kYXRh
YmFzZUJhY2tlbmQtPnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MobV9kYXRhYmFzZUNhbGxiYWNr
cyk7CisgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQorICAgICAgICBjbG9zZSgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmgKaW5kZXggNGY4MjUxODIwYTQ5YmJkZmRlNTJmYWI5MWVmZmE1YWVjMDhi
YTQ2ZC4uMTQwOWNiNjVmMDY1ZmIzNWQ0MDA3MDNmNmM3YmU3MjI0ZGQwMDAzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTY0LDYg
KzY0LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IG1fZGF0YWJhc2VCYWNrZW5kOwogICAgIFdURjo6UmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+IG1fZGF0YWJhc2VDYWxsYmFja3M7CisgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIGZsYWcgd2hlbiB3ZSBjb25zb2xpZGF0ZSB0d28tcGhhc2Ug
b3Blbi4KKyAgICAvLyBodHRwOi8vd2tiLnVnLzkwNDExCisgICAgYm9vbCBtX2Nsb3NlUGVuZGlu
ZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCmluZGV4IGQxNGFjNzFlMThjODU5MzE1MmVm
ZGZkNWM4MzllMDE3MjBlM2ZmZGMuLmFkNzE0NzZiN2ViYjQ2ODZlYTgyNWI5NjIxOTE2ZTYzYjI5
MGFjNzcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3Rv
cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5
SW1wbC5jcHAKQEAgLTYzLDE3ICs2Myw5IEBAIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmdldERh
dGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlCiAgICAg
bV9pZGJGYWN0b3J5QmFja2VuZC0+Z2V0RGF0YWJhc2VOYW1lcyhJREJDYWxsYmFja3NQcm94eTo6
Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCi0K
LXZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJ
REJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwg
V2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCi17Ci0gICAgbV9pZGJGYWN0b3J5
QmFja2VuZC0+b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNh
bGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwotfQotCiB2b2lkIFdlYklEQkZh
Y3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24s
IFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKIHsKLSAgICAvLyBGSVhN
RTogUGFzcyB2ZXJzaW9uIGFsb25nIHdoZW4gV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UKLSAgICAvLyBoYXMgYW4gb3BlbiBtZXRob2QgdGhhdCBhY2NlcHRzIGl0LgotICAgIG1f
aWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShh
ZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKKyAgICBtX2lk
YkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9
CiAKIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKaW5kZXggZmE0Mzhk
NzY0OGUzNDY0YzVhMWNiZDVjY2Y1N2NmZjBlNTZmMzI4NS4uODMzZWViNTkxMjU5Yjg1M2MzMjFm
ZDExOGYwOTRhNWI4YTdjODg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFt
ZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSos
IGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdp
biYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZv
aWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2Vi
U3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdp
biYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmlu
ZGV4IDNmYzEwNTMwN2JmNTdlMDU0MTNlOWQxNzJjMTU1OWM1NDA4YmM3Y2EuLjFkMzk1MDk2YWFk
YjNhNWIzZGU5YjcwZGFiNjBmMzE4OWNmYmE5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTEwMiw3ICsx
MDIsOCBAQCBURVNUKElEQkFib3J0VGVzdCwgVGhlVGVzdCkKICAgICBjb25zdCBTdHJpbmcmIG5h
bWUgPSAiZGIgbmFtZSI7CiAgICAgTW9ja0lEQkNhbGxiYWNrcyBjYWxsYmFja3M7CiAgICAgUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKCJodHRw
IiwgImxvY2FsaG9zdCIsIDgxKTsKLSAgICBmYWN0b3J5LT5vcGVuKG5hbWUsICZjYWxsYmFja3Ms
IG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKKyAgICBjb25zdCBpbnQ2
NF90IER1bW15VmVyc2lvbiA9IDI7CisgICAgZmFjdG9yeS0+b3BlbihuYW1lLCBEdW1teVZlcnNp
b24sICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDIyNzc4ODc1ZmE5MzQwMjA3
ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIuLjg2MDVjMGYxYWM2Mjg3ZmZkYzgyODE4ZTVhM2UwNTYz
NGE4YjJjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0
YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxGYWtlSURCRGF0YWJhc2VDYWxsYmFja3M+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3MoKSk7IH0KICAgICB2
aXJ0dWFsIH5GYWtlSURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgT1ZFUlJJREUgeyB9CisgICAg
dmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3Qg
bmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJREJEYXRhYmFzZUNh
bGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYjJlZTE1OTFjMGM0ZjMwNDBmOWU3ZDhmMmEzODY0
MDRhYTQ5YzU5Li5jZTVkOWFkMDllMGZkYmVlMmZlNzA3MThhZmEwZTAwN2RlMTczNWQ3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDgtMTQgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZv
ciBpbnRlZ2VyIHZlcnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Mjg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0
OgorCiAyMDEyLTA4LTE0ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBNYXJrIGNzczIuMS8yMDExMDMyMy9jNTQxLXdvcmQtc3AtMDAwLmh0
bSBhcyBmYWlsaW5nIG9uIFdpbmRvd3MgQ2hyb21pdW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA5OTA4
M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzLi41YTA1OGNmMTI2NTlkY2FhNGJm
MTQ1ODhlZTg0NTY5YTZjN2Y1YzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSw3ICsxMSwxMyBA
QCBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVw
Z3JhZGVOZWVkZWQKIEZJWE1FOiBUaGlzIHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlw
ZSBBYm9ydEVycm9yCiByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawot
RkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCisKK3VwZ3JhZGVOZWVk
ZWQoKToKK1BBU1MgZGIudmVyc2lvbiBpcyAyCit0cmFuc2FjdGlvbi5hYm9ydCgpCisKK29uQWJv
cnQoKToKK0ZBSUwgZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAyLgog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJz
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IGYyMjJjYTE1ZDA5Yzc0ZDNhMmY0
NDc5OGQyMGJkYzE4ZTUzMjUxNmYuLjA0ZjI4MWFhZDg0N2U4ODY4NjJmNzM5YWU0Y2ZhMjk0NzI3
MjYyZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0zMywx
NyArMzMsNTcgQEAgUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZlcnNpb24iCiBkYi5jbG9zZSgp
CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVk
ZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2Jq
ZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgU3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIGlzICJb
b2JqZWN0IElEQlRyYW5zYWN0aW9uXSIKK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUg
c29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuIFdhcyAwIChvZiB0eXBlIG51bWJlcikuCitQ
QVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorcmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQKKwordHJhbnNhY3Rpb25Db21wbGV0ZWQoKToKK2RpZFRy
YW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCisKIGZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Ci1GQUlM
IGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
ZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
IFBBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCiBQQVNTIHJlcXVlc3Qu
dHJhbnNhY3Rpb24gaXMgbnVsbAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAyIChvZiB0eXBl
IG51bWJlcikuIFdhcyBzb21lIHZlcnNpb24gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgU3RyaW5n
KHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVj
dCBJREJSZXF1ZXN0XS4KK1BBU1MgZGIudmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhyZXF1ZXN0
KSBpcyAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIKIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCJzdHJpbmcgdmVyc2lvbiAyIikKIFBBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIKIHJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RB
bGxvd2VkCi1GQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKworc2V0
VmVyc2lvbk5vdEFsbG93ZWQoKToKK1BBU1MgZXZlbnQudHlwZSBpcyAiZXJyb3IiCityZXF1ZXN0
LndlYmtpdEVycm9yTWVzc2FnZSA9IFlvdSBjYW4ndCB1c2UgdGhlIHNldFZlcnNpb24gZnVuY3Rp
b24gaWYgeW91J3ZlIGFscmVhZHkgc2V0IHRoZSB2ZXJzaW9uIHRocm91Z2ggYW4gb3BlbiBjYWxs
LiAgVGhlIGN1cnJlbnQgaW50ZWdlciB2ZXJzaW9uIGlzIDIKK2RiLmNsb3NlKCkKK3JlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpCityZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5U
cnlpbmdMb3dWZXJzaW9uCisKK2Vycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24oKToKK3JlcXVlc3Qu
d2Via2l0RXJyb3JNZXNzYWdlID0gVGhlIHJlcXVlc3RlZCB2ZXJzaW9uICgxKSBpcyBsZXNzIHRo
YW4gdGhlIGV4aXN0aW5nIHZlcnNpb24gKDIpLgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNCkKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRlZAor
cmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGlyZE9wZW5TdWNjZXNzCisKK3NlY29uZFVwZ3JhZGVOZWVk
ZWQoKToKK2dvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNp
b24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDQKKwordGhpcmRPcGVuU3VjY2Vzcygp
OgorUEFTUyBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIGlzIHRydWUKK2RiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDQKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNjZXNz
CisKK2ZvdXJ0aE9wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1Mg
ZGIudmVyc2lvbiBpcyA0CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmluZGV4IGJhYzNjY2YyYzM0YmZmMDk0
OTQzZTYxM2ZhMGRiNjM4N2RmYmEzOTQuLjAxMzhiNjgxZWFkMTBiYzQ4OTc3MWExNTkwOGU2NGE5
MjZlOWJmZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMTEsMTUgKzExLDQyIEBA
IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiBkZWxldGVTdWNjZXNzKCk6CiByZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWRDYWxs
YmFjaygpOgorZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50Lm9s
ZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5nKGV2
ZW50KSBpcyAiW29iamVjdCBJREJVcGdyYWRlTmVlZGVkRXZlbnRdIgorCiBmaXJzdFN1Y2Nlc3NF
dmVudEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJl
IHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1
ZQogY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNp
b25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlcgogUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEp
IGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDMpCiAKK3ZlcnNpb25DaGFuZ2VIYW5kbGVyKCk6CitzYXdWZXJzaW9uQ2hhbmdlRXZlbnQg
PSB0cnVlCitQQVNTIGV2ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2UiCitGQUlMIFN0cmluZyhl
dmVudCkgc2hvdWxkIGJlIFtvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XS4gV2FzIFtvYmpl
Y3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XS4KK1BBU1MgZXZlbnQudGFyZ2V0IGlzIGNvbm5lY3Rp
b24xCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlz
IDMKKworYmxvY2tlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQg
aXMgdHJ1ZQorZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZQorRkFJTCBTdHJpbmcoZXZlbnQpIHNob3Vs
ZCBiZSBbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0uIFdhcyBbb2JqZWN0IElEQlVwZ3Jh
ZGVOZWVkZWRFdmVudF0uCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5u
ZXdWZXJzaW9uIGlzIDMKK1BBU1MgZXZlbnQudHlwZSBpcyAiYmxvY2tlZCIKK2Nvbm5lY3Rpb24x
LmNsb3NlKCkKKworc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBnb3RC
bG9ja2VkRXZlbnQgaXMgdHJ1ZQorZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQor
CiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKLUZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2
ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVk
ZWRFdmVudCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50
eHQKaW5kZXggYzA2MDllZTRjMDVhMWU3ZGExYThlOTFhOWU5YTg4OTMwODgwZGZmMC4uNTUxZjhk
ODZlYjZlNzc2ZGU2MzE4OGE5YWEwMzEzNTAwOGVjYjZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEwLDExICsxMCwyNyBAQCBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNykKIAogCit1cGdyYWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0
c3RvcmUnKQordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwordHJhbnNh
Y3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitzZXRUaW1l
b3V0KGNsb3NlREIsIDApCisKIG9wZW5TdWNjZXNzKCk6CiBQQVNTIGRpZENhbGxDbG9zZURCIGlz
IGZhbHNlCi1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIp
LiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5v
YmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAxCitkYi50cmFuc2FjdGlvbihkYi5vYmplY3RTdG9y
ZU5hbWVzKQorCitjbG9zZURCKCk6CitkaWRDYWxsQ2xvc2VEQiA9IHRydWUKK2RiLmNsb3NlKCkK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTY1ZWRiMjRi
ZGQ2ZTIxOTczMjUyNGMxMTk1OGJlMjQwYzkzZjhjYS4uYzNmODA5NmU5ZjRkY2IzNmU0NjUxMjNl
ODM4NDViZjQ5ZmUyYWQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUt
ZXhwZWN0ZWQudHh0CkBAIC05LDE0ICs5LDI0IEBAIGRibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3Nl
LWluLW9uY29tcGxldGUuaHRtbCIKIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiBy
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQogCit1cGdyYWRlTmVlZGVkKCk6Citk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitkYi5j
cmVhdGVPYmplY3RTdG9yZSgnb3MnKQordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNh
Y3Rpb24KKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUg
PSB0cnVlCitkYi5jbG9zZSgpCisKIG9wZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5zYWN0aW9u
Q29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25D
b21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lv
biBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQ
QVNTIGRiLnZlcnNpb24gaXMgNwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpCiBQQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgotRkFJTCBjb2RlIHNob3VsZCBiZSAxMS4gV2FzIDguCi1GQUlMIGVuYW1lIHNob3Vs
ZCBiZSBJbnZhbGlkU3RhdGVFcnJvci4gV2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIGNvZGUgaXMg
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCitQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3Rh
dGVFcnJvcicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQK
aW5kZXggNjVlZDg1ZDQ4MTlkZDAwYTNlMGUzNGFjOWM0NGQyOWNjNGRhMWQwYi4uMThmMzNiOGI0
NmUyZWI1NDJjY2I5NDgxODkxY2JlYTgzZGFlMDMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0xMCwxMiArMTAsMjIgQEAgaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDcpCiAKIAordXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNwordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24KK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCitkYi5jbG9zZSgpCisKK3Ry
YW5zYWN0aW9uLm9uY29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorCiBv
cGVuU3VjY2VzcygpOgotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUg
bnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKIHRy
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykKLUZBSUwgdHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignb3MnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBJREJEYXRhYmFzZSBFeGNlcHRpb24gOAorRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBJ
REJEYXRhYmFzZSBFeGNlcHRpb24gMTEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0
CmluZGV4IGVmMTUzZDBkOTRlMjA4YzFmM2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkuLjUyOGJlNzYx
YTI5ZTIwOWEzMDdhNGFjZDM2MzFmMTk0ODU4YzMwMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9u
LWRlbGV0ZS1leHBlY3RlZC50eHQKQEAgLTQ2LDYgKzQ2LDEwIEBAIGNvbm5lY3Rpb24xLmNsb3Nl
KCkKIAogZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2FsbGJhY2soKToKIAordXBncmFkZU5lZWRlZENh
bGxiYWNrKCk6CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJz
aW9uIGlzIDAKKwogb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6CiBQQVNTIGV2ZW50
LnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWlu
dmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAppbmRleCBl
NzRlNWFhN2ZiYWM2OGZhNTFmZGRhNTFhNTRmZmU1M2Y2YjljYTU4Li5kMjhjYzdmZDAxMTliNjcx
MDNiZDM5YzE2MGRjOWM0N2ZkMTM4OGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZl
Y3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4
dApAQCAtMTEsOCArMTEsMTMgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGRl
bGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAKK2Zp
cnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9
IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24g
aXMgMgorCiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RVcGdyYWRl
TmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmlyc3RVcGdy
YWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQogY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0
CiBjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNh
bGxiYWNrCiBQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2Vd
IgpAQCAtMjQsNyArMjksMTMgQEAgcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24nKQog
cmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbkVycm9yCiByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVu
ZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2sKIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJs
b2NrZWRDYWxsYmFjawotRkFJTCBvbnZlcnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseQor
CitzZXRWZXJzaW9uRXJyb3IoKToKK09wZW4gdXAgYSBuZXcgZGIgdG8gZW5zdXJlIHRoYXQgaWYg
Y29ubmVjdGlvbjEgd2VyZSB0byBnZXQgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCBpdCB3aWxsIGJl
IGRlbGl2ZXJlZCBiZWZvcmUgdGhlIHRlc3QgZmluaXNoZXMKK25ld19kYiA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSArICcyJykKK25ld19kYi5vbnN1Y2Nlc3MgPSBuZXdEQlN1Y2Nlc3MKKworbmV3
REJTdWNjZXNzKCk6CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0CmluZGV4IDY5OTIwOWFmNzdkMzFh
MmFlZGNiZmE0ZDQzMWI5M2RiMWFlMTEyZGQuLmNlZmYwOTVjM2Y2MzkwNzY3OTM2OTRkMTU3ZTZm
YTEzMjAxYjM2N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dApAQCAtNjUsOCAr
NjUsMTMgQEAgRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVu
ZGVmaW5lZAogRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9i
amVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KIFBBU1MgZXZlbnQudGFy
Z2V0LnJlc3VsdCBpcyBudWxsCiAKK3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFk
ZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZl
bnQub2xkVmVyc2lvbiBpcyAwCisKIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgot
RkFJTCBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1MgZ290VXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3Vs
dC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKaW5k
ZXggMzM3MGNhZDAwNDcxNmMzZDQ5YzliODViMTVmODZhOWQ5OWNlYWRkYi4uOTA1NDc4ZGRlNDg3
MjI4MzJjODEwYzJkNjkzYmQyNjE5MjM4OWFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgt
dmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTEzLDE3ICsxMywzMyBAQCBTaG91bGQgdHJpZ2dlcjoK
IDQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4g
cnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiB1
c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLgog
NC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgNykKLUZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9wZW5EQlJl
cXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlz
ICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIgogCitQQVNTIEluIHRoZSB1cGdyYWRlbmVlZGVk
IGV2ZW50IGhhbmRlcjoKK1Rlc3QgNC44LjkuMToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
UEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1Rlc3QgNC44LjkuMzoK
K1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNwor
UEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyAiZG9uZSIKK1Rlc3QgNC4xLjQ6CitQQVNT
IGRiLm5hbWUgaXMgZGJuYW1lCitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5vYmplY3RT
dG9yZU5hbWVzLmxlbmd0aCBpcyAwCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2Fj
dGlvbgorUEFTUyBTdHJpbmcodHJhbnNhY3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5zYWN0aW9u
XSIKK29zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWVPUyIpCitzYXdUcmFuc2FjdGlvbkNv
bXBsZXRlID0gdHJ1ZQogCiBvcGVuU3VjY2VzcygpOgogVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gd2FzIHJ1bi4KLUZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1VwZ3JhZGVOZWVkZWQgaXMgdHJ1ZQorUEFT
UyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAogS2luZCBvZiB0ZXN0IDQuMS45OgogUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBX
YXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158438</attachid>
            <date>2012-08-14 16:21:48 -0700</date>
            <delta_ts>2012-08-14 16:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120814162115.patch</filename>
            <type>text/plain</type>
            <size>86715</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRmNmRmM2NkNGZiZmFi
NjUxODkzMzIzNWQyZTZhMGI2MzE2MjU4OC4uZWE5MTIzZGI0MDE0OGMyNjcxZDA3MzJkYjA5NGUz
MDM1ZGFmMDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6Y2xlYXJUcmFuc2FjdGlvblByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpvbkJsb2NrZWQpOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICBXZSBub3cgdGFrZSBhIHBv
aW50ZXIgdG8gdGhlIG9wZW5EQlJlcXVlc3QgaWYgdGhpcyBpcyBhIHZlcnNpb24KKyAgICAgICAg
Y2hhbmdlIHRyYW5zYWN0aW9uIGFzIGEgcmVzdWx0IG9mIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNh
bGwgc28gdGhhdCB3ZQorICAgICAgICBjYW4gY2xlYXIgdGhlIHRyYW5zYWN0aW9uIHByb3BlcnR5
IG9uIHRoZSBvcGVuREJSZXF1ZXN0IGFzIHNvb24gYXMgdGhlCisgICAgICAgIHVwZ3JhZGVuZWVk
ZWQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBwZXIgdGhlIHNwZWMgKCIuLi4gc2V0IHJlcXVlc3Qncwor
ICAgICAgICB0cmFuc2FjdGlvbiBwcm9wZXJ0eSB0byBudWxsLi4uICIsIGN1cnJlbnRseSA0Ljgu
MTIpLgorCisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpzZXRBY3RpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKElEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpJREJVcGdyYWRlTmVlZGVkRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50Ojp+SURCVXBncmFk
ZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
b2xkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om5l
d1ZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRl
cmZhY2VOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElEQlVw
Z3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFk
ZU5lZWRlZEV2ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaC4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTE0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWls
LnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAyOGJlNGJiMzBmYTYzNjVmYzU2MWQ5ODhiY2RmZmJhYWM3NDcx
NjVlLi5hZDgxMGEzOWUyY2E2MmI4MzQxNTEzMjkzM2Y5ZTEyNDY2ZjAzOGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE0ICBEYXZpZCBHcm9n
YW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZyb250ZW5k
IGFuZCBwbHVtYmluZyBmb3IgaW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJD
YWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZlcnNpb24p
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKToKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHku
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRmFjdG9yeUJh
Y2tlbmRQcm94eTo6b3Blbik6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHku
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9JREJU
cmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZSk6CisgICAgICAgICogc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpX
ZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1w
bDo6b25TdWNjZXNzKToKKyAgICAgICAgV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkgYWdhaW4gaWYgd2UndmUgYWxyZWFkeQorICAgICAgICBjcmVhdGVkIGl0
IGR1cmluZyB1cGdyYWRlTmVlZGVkLiAgVGhpcyBtYWtlcworICAgICAgICBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kKSByZXVzZSBpdHMgcHJldmlvdXMKKyAgICAgICAg
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIGlmIGl0IGhhcyBvbmUuCisKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZCk6
CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNh
bGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVy
c2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkRhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
OgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFj
dG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Blbik6
CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJREJGYWN0
b3J5SW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25D
b21wbGV0ZSk6CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2Vu
ZFRlc3QuY3BwOgorCiAyMDEyLTA4LTE0ICBJYWluIE1lcnJpY2sgIDxodXNreUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYSB0ZXN0IHRvIFdlYkZyYW1lVGVzdCBmb3Ig
c2VsZWN0UmFuZ2UgYW5kIHZpc2libGVQb3NpdGlvbkZvcldpbmRvd1BvaW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDVjM2Rm
Y2I2YjU0MmMxYmUwNmIyNDFiNDdjZTliYWNiOWI2NjI5YjQuLjJhMzljYWJmYjM5NGQ2YzZlMmI4
MzliYzdjMTI4ODY4ODM2NWNmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJREJP
YmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbi5oIgorI2luY2x1ZGUgIklEQlVwZ3JhZGVOZWVkZWRFdmVudC5oIgogI2luY2x1ZGUg
IklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMjA4LDYgKzIw
OSw3IEBAIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkRhdGFiYXNlOjpz
ZXRWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAgfQogCiAgICAgUmVmUHRyPElEQlZl
cnNpb25DaGFuZ2VSZXF1ZXN0PiByZXF1ZXN0ID0gSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgdmVyc2lvbik7CisgICAgQVNTRVJU
KG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5zZXRWZXJzaW9uKHZlcnNpb24sIHJlcXVlc3Qs
IG1fZGF0YWJhc2VDYWxsYmFja3MsIGVjKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTMw
MSw2ICszMDMsMTcgQEAgdm9pZCBJREJEYXRhYmFzZTo6Y2xvc2VDb25uZWN0aW9uKCkKICAgICB9
CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNp
b24sIGludDY0X3QgbmV3VmVyc2lvbikKK3sKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9j
bG9zZVBlbmRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGVucXVldWVFdmVudChJREJVcGdy
YWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uLCBldmVudE5hbWVz
KCkudmVyc2lvbmNoYW5nZUV2ZW50KSk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lv
bkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pCiB7CiAgICAgaWYgKG1fY29udGV4dFN0b3Bw
ZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKQEAgLTMxNCw2ICszMjcsNyBAQCB2b2lk
IElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogCiB2
b2lkIElEQkRhdGFiYXNlOjpyZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKCkKIHsKKyAgICBBU1NF
UlQobV9iYWNrZW5kKTsKICAgICBtX2JhY2tlbmQtPnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3Mo
bV9kYXRhYmFzZUNhbGxiYWNrcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IDY0Y2JiMzI2YTU4ODNkY2YzOTQ3M2NhYTEwOTcy
OTA1ZjNmZTY3NWUuLmE3ZDcyY2UxOThmM2UwZmRhYWQwY2EzZjMwZjg2YzRlZjM3YTcyYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAt
NzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
Uih2ZXJzaW9uY2hhbmdlKTsKIAogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJhY2tzCisgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3
VmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcm
IHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuY3BwCmluZGV4IGEzMTI1MWM4ZDYzNzg1MGNmODdhZDhjYTRjMmU5ZWUxYTVhMjhlYjAu
LmY5YjFhZWU1ZWZlNzZiODUzMjQ4YWY4Y2IyZjUxNDJkODBjNzI2Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuY3BwCkBAIC00NDQsMTAgKzQ0NCw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKIAog
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24oaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJw
Q2FsbGJhY2tzKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIHJlYWNo
ZWQgdW50aWwgaXQncyBleHBvc2VkIHRvIHNjcmlwdCBpbgotICAgIC8vIHdiay51Zy85Mjg5Ny4K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcyA9IHBycENhbGxiYWNrczsKICAgICBBU1NFUlQoY2FsbGJhY2tzKTsKICAgICBmb3Ig
KERhdGFiYXNlQ2FsbGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZGF0YWJhc2VDYWxs
YmFja3NTZXQuYmVnaW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5lbmQoKTsgKytp
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXggMTZhOWVhNmM1MDhiMGQ5MmI2MWU0OTk3YzU0MzAxMzJh
NmQyYWNhYS4uZmFhMTY2ZjdmNTExZmY2NjY2ZjM5NzNkYmI4NDA0YjdmOWI1MjNmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrcy5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRh
YmFzZUNhbGxiYWNrcygpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShj
b25zdCBTdHJpbmcmIHZlcnNpb24pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hh
bmdlKGludDY0X3QgY3VycmVudFZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
aW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDE5NDEyZmNi
ZTUwYWI0NGJmNTNkYzAxZTAzZDg4NTNlMjhmN2M1ZmYuLmNlYjdhZjMxZjNlMjI0ODYxZTA1MDc2
MjEwZmFmYzVhMDU4ZGYyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNTIsNiAr
NTIsMTIgQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShj
b25zdCBTdHJpbmcmIHZlcnNpb24pCiAgICAgICAgIG1fZGF0YWJhc2UtPm9uVmVyc2lvbkNoYW5n
ZSh2ZXJzaW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lv
bkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikKK3sKKyAgICBp
ZiAobV9kYXRhYmFzZSkKKyAgICAgICAgbV9kYXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKG9sZFZl
cnNpb24sIG5ld1ZlcnNpb24pOworfQorCiB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
dW5yZWdpc3RlckRhdGFiYXNlKElEQkRhdGFiYXNlKiBkYXRhYmFzZSkKIHsKICAgICBBU1NFUlRf
VU5VU0VEKGRhdGFiYXNlLCBkYXRhYmFzZSA9PSBtX2RhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmgKaW5kZXggZThiMWY5OWI4MzhhZjdiOTM3ZDk0YjdhZjhmN2Y3ZGZiODJiZTdmYi4uMDJj
OGRlMGRmZTlmNmVmZGVkNjgwNWI3YmFjOTIxNzhmYjgwODhkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZvaWQgdW5yZWdpc3Rl
ckRhdGFiYXNlKElEQkRhdGFiYXNlKik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IGNmNTJjYzFmZTJiMTM1NWI2
YzU0ZWRjZTI2NWUwZjNlOGMzYTVlOTEuLmM4M2JhMzY0NWRiZjZkMzk4M2M5Y2NhN2Q3YjM3YWIx
NTA3NzJiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5o
IgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMDUsNyArMTA1LDcgQEAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnQKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQk9wZW5E
QlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGlmIChuYW1lLmlzTnVsbCgpKSB7CiAgICAgICAgIGVjID0gTkFUSVZFX1RZUEVf
RVJSOwpAQCAtMTE0LDExICsxMTQsMTYgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0
b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFMKICAgICBp
ZiAoIWlzQ29udGV4dFZhbGlkKGNvbnRleHQpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJl
ZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElE
QkFueTo6Y3JlYXRlKHRoaXMpLCAwKTsKLSAgICBtX2JhY2tlbmQtPm9wZW4obmFtZSwgcmVxdWVz
dCwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJh
c2VQYXRoKGNvbnRleHQpKTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9
IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwg
dmVyc2lvbik7CisgICAgbV9iYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIHJlcXVlc3QsIGNv
bnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0
aChjb250ZXh0KSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKK1Bhc3NSZWZQdHI8SURCT3Bl
bkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVy
biBvcGVuKGNvbnRleHQsIG5hbWUsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwg
ZWMpOworfQorCiBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBJREJGYWN0b3J5
OjpkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChuYW1lLmlzTnVsbCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKaW5k
ZXggNDYxMWNiNmM0ZmU4Mzk5MGI0NzI0YTQzYmYwOWM5YTVhOTVkODg4ZC4uMzY0NWJiODFkYzdl
ZTk2NjkwNWRhNjUyYzA2NGRhNzM4NmY2NTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgi
Ci0jaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU4LDcgKzU4LDggQEAgcHVibGljOgog
CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXREYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRy
PElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1Jl
ZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
c2hvcnQgY21wKFBhc3NSZWZQdHI8SURCS2V5PiBmaXJzdCwgUGFzc1JlZlB0cjxJREJLZXk+IHNl
Y29uZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCAwMzg5ZWIyYWFlN2UxMjk5NTRkOWFjZjAzYTU5ZmZi
Y2M3ZmJhYWNjLi5iZjcxYTJkZDI1ZDFmZjk1ZTI2NDM1ZjRlNDFmMGM0MWI5NzY3MmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbApAQCAt
MzAsNyArMzAsNyBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgXSBJREJGYWN0b3J5IHsKICAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9Z2V0RGF0
YWJhc2VOYW1lc10gSURCUmVxdWVzdCB3ZWJraXRHZXREYXRhYmFzZU5hbWVzKCk7CiAKLSAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbihpbiBE
T01TdHJpbmcgbmFtZSkKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IElEQk9wZW5EQlJlcXVlc3Qgb3BlbihpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsXSB1
bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgZGVsZXRlRGF0YWJhc2UoaW4gRE9NU3RyaW5nIG5hbWUp
CiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZElt
cGwuY3BwCmluZGV4IDYzYmQ0NzgzZTU0YWUzMWY0ZDQ5NTk2ZjNiNjBkOWFmODI1NGM5ZGMuLjhk
YTVjMDJlNDIzZjZmNjRlNTc5NzMwZGI3M2ZhMjllYzJiZTQ2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBs
LmNwcApAQCAtMTUwLDEwICsxNTAsOCBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gSURC
RmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuQmFja2luZ1N0b3JlKFBhc3NSZWZQdHI8UwogICAgIHJl
dHVybiAwOwogfQogCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHBycFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyZWN0b3J5KQordm9pZCBJREJGYWN0b3J5QmFja2VuZElt
cGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHBycFNl
Y3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyZWN0b3J5KQogewotICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgYSBwYXJhbWV0ZXIgYW5kIHBs
dW1iIHRocm91Z2ggZnJvbSBqYXZhc2NyaXB0LgotICAgIGludDY0X3QgdmVyc2lvbiA9IElEQkRh
dGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbjsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luID0gcHJwU2VjdXJpdHlPcmlnaW47CiAgICAgY29uc3QgU3RyaW5nIHVu
aXF1ZUlkZW50aWZpZXIgPSBjb21wdXRlVW5pcXVlSWRlbnRpZmllcihuYW1lLCBzZWN1cml0eU9y
aWdpbi5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKaW5kZXggY2ExZDA1MjgyYThjNWVkZjc2NmQ1
ZTU1NTA4ZmFlMGE5YzA0OGM2NS4uY2FkM2I1YTI0YjI5OWE5Mjk5YzJhZDI5NGUzYjJlYTA0Y2Zk
NzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVJREJCYWNraW5nU3RvcmUoY29uc3QgU3RyaW5nJiBmaWxlSWRlbnRp
Zmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihj
b25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRf
dCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJvdGVjdGVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNDRmNWM3ODZlZjIxZWE0NzE5ZjYzNjk0Mjlm
NzY3MzkwMDQwOTI5My4uNGVhNWQ4YTMzMGZkMDQxYWY1MWNiMmE5NTQ0ZWE0OGFjZjY2NmZlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYjNmOGU5NzljNTc2ODcwODIyOWVmN2E2ZDNkMzkxMGY1MjYwZTEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKKyNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJj
ZSwgaW50NjRfdCB2ZXJzaW9uKQoreworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1
ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNvdXJjZSwgdmVyc2lv
bikpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVz
dC5yZWxlYXNlKCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6OklEQk9wZW5EQlJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwg
aW50NjRfdCB2ZXJzaW9uKQorICAgIDogSURCUmVxdWVzdChjb250ZXh0LCBzb3VyY2UsIDApCisg
ICAgLCBtX3ZlcnNpb24odmVyc2lvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVzdWx0KTsKK30KKwor
SURCT3BlbkRCUmVxdWVzdDo6fklEQk9wZW5EQlJlcXVlc3QoKQoreworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIElEQk9wZW5EQlJlcXVlc3Q6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9ySURCT3BlbkRCUmVxdWVzdDsKK30KKwor
dm9pZCBJREJPcGVuREJSZXF1ZXN0OjpvbkJsb2NrZWQoaW50NjRfdCBvbGRWZXJzaW9uKQorewor
ICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1f
cmVzdWx0KTsKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUo
b2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50KSk7Cit9CisK
K3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lv
biwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHBycFRyYW5zYWN0
aW9uQmFja2VuZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IHBycERh
dGFiYXNlQmFja2VuZCkKK3sKKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRh
YmFzZUJhY2tlbmQgPSBwcnBEYXRhYmFzZUJhY2tlbmQ7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25CYWNrZW5kID0gcHJwVHJhbnNhY3Rpb25C
YWNrZW5kOworICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFz
ZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZGF0YWJhc2VCYWNrZW5kKTsKKwor
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQgPSBJREJUcmFuc2FjdGlvbjo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNhY3Rpb25CYWNrZW5kLCBJREJUcmFu
c2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UsIGlkYkRhdGFiYXNlLmdldCgpLCB0aGlzKTsKKyAgICB0
cmFuc2FjdGlvbkJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9udGVuZC5nZXQoKSk7CisgICAgbV90
cmFuc2FjdGlvbiA9IGZyb250ZW5kOworICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoaWRi
RGF0YWJhc2UucmVsZWFzZSgpKTsKKworICAgIGlmIChvbGRWZXJzaW9uID09IElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbikgeworICAgICAgLy8gVGhpcyBkYXRhYmFzZSBoYXNuJ3Qg
aGFkIGFuIGludGVnZXIgdmVyc2lvbiBiZWZvcmUuCisgICAgICBvbGRWZXJzaW9uID0gSURCRGF0
YWJhc2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb247CisgICAgfQorICAgIGVucXVldWVFdmVu
dChJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBtX3ZlcnNpb24sIGV2
ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpKTsKK30KKworYm9vbCBJREJPcGVuREJSZXF1
ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdAoreworICAgIGlmIChtX2NvbnRleHRTdG9w
cGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERP
TkUpOworICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMDc0MmYxZjQzYThmNmY3NzFhZjEyODU2MDI0ZmY2ODI4NWFjYmIz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQk9wZW5E
QlJlcXVlc3RfaAorI2RlZmluZSBJREJPcGVuREJSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIElEQk9wZW5EQlJlcXVlc3QgOiBwdWJsaWMgSURCUmVxdWVzdCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBpbnQ2NF90
IHZlcnNpb24pOworICAgIHZpcnR1YWwgfklEQk9wZW5EQlJlcXVlc3QoKTsKKworICAgIHZpcnR1
YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CisKKyAgICAvLyBFdmVudFRhcmdldAorICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKKyAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGJsb2NrZWQpOworICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIodXBncmFkZW5lZWRlZCk7CisKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QgT1ZFUlJJREU7CisKK3By
aXZhdGU6CisgICAgSURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKTsKKworICAgIGludDY0X3Qg
bV92ZXJzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBJREJPcGVuREJSZXF1ZXN0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTI2NmM3MzU5YTBhNjVlNjk1YjA4NDVkZTVmNTM1ODNhNmNkODI5
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFn
ZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFC
QVNFLAorICAgICAgICBBY3RpdmVET01PYmplY3QsCisgICAgICAgIEV2ZW50VGFyZ2V0CisgICAg
XSBJREJPcGVuREJSZXF1ZXN0IDogSURCUmVxdWVzdCB7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uYmxvY2tlZDsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb251
cGdyYWRlbmVlZGVkOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGYwODg2YzY2Y2IxZGZjZGNmMDRjMTAzZmVhMWQ1
OGMzMDU4ZTkyNGEuLjk2NTUxNWQzODhiMDQ1ODQ1Yzc4NTZjMWM5MTBjNzM3MDM2NGEwYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBA
IC01MywxNSArNTMsMTcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1IKIAogSURCUmVxdWVzdDo6
SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElE
QkFueT4gc291cmNlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiAgICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAsIG1fcmVzdWx0KDApCiAgICAgLCBtX2Vycm9y
Q29kZSgwKQotICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9jb250ZXh0U3RvcHBlZChm
YWxzZSkKICAgICAsIG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgLCBtX3JlYWR5U3Rh
dGUoUEVORElORykKICAgICAsIG1fcmVxdWVzdEFib3J0ZWQoZmFsc2UpCi0gICAgLCBtX2NvbnRl
eHRTdG9wcGVkKGZhbHNlKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9jdXJzb3JU
eXBlKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKQogICAgICwg
bV9jdXJzb3JEaXJlY3Rpb24oSURCQ3Vyc29yOjpORVhUKQogICAgICwgbV9wZW5kaW5nQ3Vyc29y
KDApCisgICAgLCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQoZmFsc2UpCiB7CiAgICAgaWYg
KG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0
KHRoaXMpOwpAQCAtMjc3LDEwICsyNzksMTYgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiAgICAgaWYg
KCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPElE
QkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBiYWNrZW5kKTsKLSAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVu
ZENhbGxiYWNrcygpOwotCi0gICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFz
ZS5yZWxlYXNlKCkpOworICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2U7CisgICAg
aWYgKG1fcmVzdWx0KSB7CisgICAgICAgIGlkYkRhdGFiYXNlID0gbV9yZXN1bHQtPmlkYkRhdGFi
YXNlKCk7CisgICAgICAgIEFTU0VSVChpZGJEYXRhYmFzZSk7CisgICAgICAgIGlkYkRhdGFiYXNl
LT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWRi
RGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
YmFja2VuZCk7CisgICAgICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tz
KCk7CisgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoaWRiRGF0YWJhc2UucmVsZWFz
ZSgpKTsKKyAgICB9CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0K
IApAQCAtNDI2LDggKzQzNCw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBBU1NFUlQobV9lbnF1ZXVlZEV2ZW50cy5zaXplKCkp
OwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChldmVu
dC0+dGFyZ2V0KCkgPT0gdGhpcyk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3Rh
dGUgPCBET05FLCAibV9yZWFkeVN0YXRlIDwgRE9ORSglZCksIHdhcyAlZCIsIERPTkUsIG1fcmVh
ZHlTdGF0ZSk7Ci0KKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUs
ICJXaGVuIGRpc3BhdGNoaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgPCBET05FKCVkKSwgd2Fz
ICVkIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBET05FLCBtX3JlYWR5
U3RhdGUpOwogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZl
bnQpCiAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiAKQEAgLTQ1NiwxMSArNDYzLDEyIEBA
IGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkK
ICAgICB9CiAKICAgICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlzcGF0
Y2hpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4KLSAgICBBU1NFUlQoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuYmxvY2tlZEV2ZW50KTsKLSAgICBjb25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0g
bV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2
ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1fZXJy
b3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CisgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZl
bnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBldmVu
dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGNvbnN0IGJvb2wgc2V0VHJh
bnNhY3Rpb25BY3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBn
cmFkZW5lZWRlZEV2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50ICYmIG1fZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJS
KSk7CiAKICAgICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNhY3Rp
b24tPnNldEFjdGl2ZSh0cnVlKTsKKwogICAgIGJvb2wgZG9udFByZXZlbnREZWZhdWx0ID0gSURC
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CiAgICAgaWYg
KHNldFRyYW5zYWN0aW9uQWN0aXZlKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3RpdmUo
ZmFsc2UpOwpAQCAtNDY4LDYgKzQ3NiwxMSBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90aWZ5KQogICAg
ICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKIAorICAg
IGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpIHsK
KyAgICAgICAgQVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAgICBt
X2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIGlmIChtX3Ry
YW5zYWN0aW9uKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJvcnRlZCkgewog
ICAgICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CkBAIC00OTQsNiAr
NTA3LDE2IEBAIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxl
cigpCiAgICAgfQogfQogCit2b2lkIElEQlJlcXVlc3Q6OmNsZWFyVHJhbnNhY3Rpb25Qcm9wZXJ0
eSgpCit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24pOworICAgIEFTU0VSVChtX3RyYW5zYWN0
aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBET05F
KTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX3RyYW5zYWN0
aW9uLmNsZWFyKCk7CisgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKK30KKwogdm9pZCBJREJS
ZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKQEAg
LTUwMSw3ICs1MjQsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OmVucXVldWVFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRl
ID09IFBFTkRJTkcpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlID09IFBF
TkRJTkcgfHwgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50LCAiV2hlbiBxdWV1ZWluZyBldmVu
dCAlcywgbV9yZWFkeVN0YXRlIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgbV9yZWFkeVN0YXRlKTsKIAogICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50UXVldWUoKTsKICAgICBldmVudC0+c2V0VGFy
Z2V0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5oCmluZGV4IGQ4MWMzZjc4NGFjYTRmNjJkZGEzZTg1MmY0YTU5NDM0OWQwOTNiNTUuLmI3OTJm
Mzg4ODlkNGZlMzIxZGJlYmYyZmE2YjcwNTYzMmE3MDBkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVm
UHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNoIHRo
ZSByZW5kZXJlciBzaWRlLgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMDIsMTggKzEwMywyNCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50
LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQo
ZXZlbnQsIGVjKTsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRI
YW5kbGVyKCk7CiAKKyAgICB2b2lkIGNsZWFyVHJhbnNhY3Rpb25Qcm9wZXJ0eSgpOworCiAgICAg
dXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPjo6cmVmOwogICAgIHVzaW5n
IFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46OmRlcmVmOwogCiBwcm90ZWN0ZWQ6
CiAgICAgSURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJB
bnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNz
UmVmUHRyPEV2ZW50Pik7Ci0gICAgYm9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Q7CiAKICAgICBSZWZQdHI8
SURCQW55PiBtX3Jlc3VsdDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2Vycm9yQ29kZTsKICAgICBT
dHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOworICAg
IGJvb2wgbV9jb250ZXh0U3RvcHBlZDsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IG1fdHJh
bnNhY3Rpb247CisgICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgYm9vbCBtX3JlcXVl
c3RBYm9ydGVkOyAvLyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVuIHJlY2VpdmUg
YXN5bmMgb25zdWNjZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KIAogcHJpdmF0ZToKICAgICAvLyBF
dmVudFRhcmdldApAQCAtMTI2LDExICsxMzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmVz
dWx0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNz
UmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwotICAgIFJlZlB0cjxJREJUcmFu
c2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKIAotICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwot
ICAgIGJvb2wgbV9yZXF1ZXN0QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rp
b24gdGhlbiByZWNlaXZlIGFzeW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCi0gICAg
Ym9vbCBtX2NvbnRleHRTdG9wcGVkOwogICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9lbnF1
ZXVlZEV2ZW50czsKIAogICAgIC8vIE9ubHkgdXNlZCBpZiB0aGUgcmVzdWx0IHR5cGUgd2lsbCBi
ZSBhIGN1cnNvci4KQEAgLTE0MCw2ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJL
ZXk+IG1fY3Vyc29yS2V5OwogICAgIFJlZlB0cjxJREJLZXk+IG1fY3Vyc29yUHJpbWFyeUtleTsK
ICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX2N1cnNvclZhbHVlOworICAgIGJv
b2wgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50OwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1f
ZXZlbnRUYXJnZXREYXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA3NjEyMzQ3MDE0MTgzYzlkYTYxZThkYmFm
ZTY1ZmEzODU5OTkzNDdlLi40Nzk2YjE0MTFmN2E0NGQzZWRiN2QyZTQxNmY0NjQwYWFmMmI0OTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNs
dWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJQ
ZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgogCkBA
IC00Myw3ICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tl
bmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYikKIHsKLSAgICBS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2Fj
dGlvbihjb250ZXh0LCBiYWNrZW5kLCBtb2RlLCBkYikpKTsKKyAgICBJREJPcGVuREJSZXF1ZXN0
KiBvcGVuREJSZXF1ZXN0ID0gMDsKKyAgICByZXR1cm4gY3JlYXRlKGNvbnRleHQsIGJhY2tlbmQs
IG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KTsKK30KKworUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURC
VHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiLCBJREJPcGVuREJSZXF1ZXN0
KiBvcGVuREJSZXF1ZXN0KQoreworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rp
b24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRi
LCBvcGVuREJSZXF1ZXN0KSkpOwogICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucmVsZWFzZSgpOwogfQpAQCAtNzksMTAgKzg2LDExIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3ko
KQogfQogCiAKLUlEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQor
SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5k
LCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIsIElEQk9wZW5EQlJl
cXVlc3QqIG9wZW5EQlJlcXVlc3QpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhp
cykKICAgICAsIG1fYmFja2VuZChiYWNrZW5kKQogICAgICwgbV9kYXRhYmFzZShkYikKKyAgICAs
IG1fb3BlbkRCUmVxdWVzdChvcGVuREJSZXF1ZXN0KQogICAgICwgbV9tb2RlKG1vZGUpCiAgICAg
LCBtX2FjdGl2ZSh0cnVlKQogICAgICwgbV9zdGF0ZShVbnVzZWQpCkBAIC0xODIsNyArMTkwLDcg
QEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmVEZWxldGVkKGNvbnN0IFN0cmluZyYg
bmFtZSkKIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogewot
ICAgIEFTU0VSVChtX3N0YXRlICE9IEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KG1fc3RhdGUgIT0gRmluaXNoZWQsICJBIGZpbmlzaGVkIHRyYW5zYWN0aW9uIHRyaWVkIHRvIHNl
dEFjdGl2ZSglcykgaW4gJXAiLCBhY3RpdmUgPyAidHJ1ZSIgOiAiZmFsc2UiLCB0aGlzKTsKICAg
ICBpZiAobV9zdGF0ZSA9PSBGaW5pc2hpbmcpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQo
bV9zdGF0ZSA9PSBVbnVzZWQgfHwgbV9zdGF0ZSA9PSBVc2VkKTsKQEAgLTM3NSw3ICszODMsMTIg
QEAgYm9vbCBJREJUcmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBkaXNwYXRj
aGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgogICAgIEFTU0VSVChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jb21wbGV0ZUV2ZW50IHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwotICAgIHJldHVybiBJREJFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKKyAgICBib29sIHJldHVyblZhbHVl
ID0gSURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7Cisg
ICAgLy8gRklYTUU6IFRyeSB0byBjb25zdHJ1Y3QgYSB0ZXN0IHdoZXJlIHx0aGlzfCBvdXRsaXZl
cyBvcGVuREJSZXF1ZXN0IGFuZCB3ZQorICAgIC8vIGdldCBhIGNyYXNoLgorICAgIGlmIChtX29w
ZW5EQlJlcXVlc3QpCisgICAgICAgIG1fb3BlbkRCUmVxdWVzdC0+Y2xlYXJUcmFuc2FjdGlvblBy
b3BlcnR5KCk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBib29sIElEQlRyYW5zYWN0
aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDFmN2FmN2RhZDFiZTk0OGY2YjQxOTU3Zjc5
ZTVmNjg3NDJiOTlhZjAuLjAwNWUzNzM2MzBhNGQyZmYyZWJhZmQ4MWVlMzZlYTBjOTg5YTkyMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJDdXJz
b3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQk9iamVjdFN0b3JlOworY2xhc3MgSURC
T3BlbkRCUmVxdWVzdDsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMgSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJ
REJEYXRhYmFzZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1ZXN0Kik7CiAg
ICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIG1vZGVSZWFkT25seSgpOwpAQCAtMTE5LDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICB1
c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKIHByaXZh
dGU6Ci0gICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqKTsK
KyAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFzZSosIElEQk9w
ZW5EQlJlcXVlc3QqKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+
KTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKQEAgLTE0Miw2ICsxNDQsNyBAQCBwcml2
YXRlOgogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9iYWNr
ZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICBJREJPcGVuREJS
ZXF1ZXN0KiBtX29wZW5EQlJlcXVlc3Q7CiAgICAgY29uc3QgTW9kZSBtX21vZGU7CiAgICAgYm9v
bCBtX2FjdGl2ZTsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjEyMDU0NThlNGY0Nzk1OWEzZWM4OTA0YmE1NjA2YzJmMTJkMTlhOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVk
ZWRFdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKKworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkFueS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCVXBncmFkZU5lZWRlZEV2
ZW50PiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24sIGlu
dDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJREJVcGdyYWRlTmVlZGVkRXZlbnQob2xkVmVyc2lvbiwgbmV3
VmVyc2lvbiwgZXZlbnRUeXBlKSk7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKKyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgZmFs
c2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5jZWxhYmxlKi8pCisgICAgLCBtX29sZFZlcnNp
b24ob2xkVmVyc2lvbikKKyAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9uKQoreworfQorCitJ
REJVcGdyYWRlTmVlZGVkRXZlbnQ6On5JREJVcGdyYWRlTmVlZGVkRXZlbnQoKQoreworfQorCitp
bnQ2NF90IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbigpCit7CisgICAgcmV0dXJu
IG1fb2xkVmVyc2lvbjsKK30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om5ld1Zl
cnNpb24oKQoreworICAgIHJldHVybiBtX25ld1ZlcnNpb247Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyYgSURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQlVwZ3JhZGVOZWVkZWRFdmVudDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODA2NzFkMjQ0OGE3NjEwODEyZmJmNTUwMDljOTYyYWM0YTIwNWU3OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQlVwZ3JhZGVO
ZWVkZWRFdmVudF9oCisjZGVmaW5lIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURC
TWV0YWRhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQkFueTsKKworY2xhc3MgSURCVXBncmFkZU5lZWRlZEV2ZW50IDogcHVi
bGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJVcGdyYWRlTmVl
ZGVkRXZlbnQ+IGNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRh
OjpOb0ludFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6
Ok5vSW50VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBBdG9taWNTdHJp
bmcoKSk7CisgICAgdmlydHVhbCB+SURCVXBncmFkZU5lZWRlZEV2ZW50KCk7CisKKyAgICB2aXJ0
dWFsIGludDY0X3Qgb2xkVmVyc2lvbigpOworICAgIHZpcnR1YWwgaW50NjRfdCBuZXdWZXJzaW9u
KCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIElEQlVwZ3JhZGVOZWVkZWRFdmVudChpbnQ2NF90IG9sZFZl
cnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUp
OworCisgICAgaW50NjRfdCBtX29sZFZlcnNpb247CisgICAgaW50NjRfdCBtX25ld1ZlcnNpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZl
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzdiMDAwZDQyMmZiNzI3ZDQwMDgyMzY5OGE0MDExZDIy
MWQ1N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5E
RVhFRF9EQVRBQkFTRQorICAgIF0gSURCVXBncmFkZU5lZWRlZEV2ZW50IDogRXZlbnQgeworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb247Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgbmV3VmVyc2lvbjsK
KyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDExODg3NzNlOTkzM2M0NWZiN2QyN2U5NGNj
N2E1ZGIyMDY5Y2RjOTYuLmNiZjQxYTgzMzYzMDA1MjY5NGM4MmE1NTk2MzhjMGJjNjc1ZmMyNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTgyMSw4ICs4MjEsMTAgQEAKICAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwn
LAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5p
ZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VS
ZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4
dEluZGV4ZWREYXRhYmFzZS5pZGwnLApAQCAtMTUxNCw2ICsxNTE2LDggQEAKICAgICAgICAgICAg
ICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2UuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9u
TW9uaXRvci5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdU
cmFuc2FjdGlvbk1vbml0b3IuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5jcHAnLApAQCAtMTUyNyw2ICsxNTMxLDggQEAKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKKyAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50Lmgn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA2ZDBhMTA1NzM4ZGE5ZTgwYTVhODMz
OTcwN2I0MzFhZDkwMjNkYTMyLi5hMmZhZWMxMjgzNGJiYTg0ODhjNzRmZmYzZGFkODUxNTgwZjYw
OTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odGV4dElucHV0KSBcCiAgICAgbWFjcm8odW5sb2FkKSBc
CiAgICAgbWFjcm8odXBkYXRlcmVhZHkpIFwKKyAgICBtYWNybyh1cGdyYWRlbmVlZGVkKSBcCiAg
ICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAogICAgIG1hY3JvKHdlYmtpdHZpc2liaWxpdHljaGFu
Z2UpIFwKICAgICBtYWNybyh3cml0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA1
ZGE1N2ZmYzZjZjQzMjY3YTVlYzNiZTMzNzU5NWI2Y2ZlNTRmODI4Li4yMmFhYTdiMDcwYzRiYjQy
YjE0MmUxMWJkYzliMzc5YjU3YzQ1ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAt
MzksNiArMzksNyBAQCBTdG9yYWdlRXZlbnQKIFNWR0V2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50
LCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21FdmVudCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21F
dmVudHMgaW50ZXJmYWNlTmFtZT1TVkdab29tRXZlbnQsIGNvbmRpdGlvbmFsPVNWRworSURCVXBn
cmFkZU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKIElEQlZlcnNpb25D
aGFuZ2VFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBUb3VjaEV2ZW50IGNvbmRp
dGlvbmFsPVRPVUNIX0VWRU5UUywgcnVudGltZUNvbmRpdGlvbmFsPXRvdWNoRW5hYmxlZAogRGV2
aWNlTW90aW9uRXZlbnQgY29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2ZDk3MmMzOTZkNzYzMzJlMWEwYjI2
NTczMWFlM2RiOGE0OWYyMWU5Li43OTFiZDRlZGE1Y2EzN2FmNDU3ODM2MzQ5Nzc5NTEzMDc0YzJk
MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5Lmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTksNiAr
OSw3IEBAIEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVXcml0
ZXIgY29uZGl0aW9uYWw9RklMRV9TWVNURU0KIElEQkRhdGFiYXNlIGNvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UKK0lEQk9wZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFT
RQogSURCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJUcmFuc2FjdGlv
biBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBj
b25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCAzMmIyOWI1NjNkNmE1NzIx
YzEzNTJiZmQ1YTY0MzM4ZjFhYjc1MjE1Li5lMTViMzBkOWU0M2YxNTUzZDQxNWE4MjRlNGExNTQ1
OGZjNDY0MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdW
ZXJzaW9uKSB7IH0KIHByaXZhdGU6CiAgICAgSW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3Mo
KSB7IH0KIH07CkBAIC0yMzcsNyArMjM4LDcgQEAgcHJpdmF0ZToKIHZvaWQgRXhlY3V0YWJsZVdp
dGhEYXRhYmFzZTo6c3RhcnQoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZhY3Rvcnks
IFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpCiB7CiAgICAgUmVmUHRyPE9wZW5E
YXRhYmFzZUNhbGxiYWNrPiBjYWxsYmFjayA9IE9wZW5EYXRhYmFzZUNhbGxiYWNrOjpjcmVhdGUo
dGhpcyk7Ci0gICAgaWRiRmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUsIGNhbGxiYWNrLmdldCgp
LCBzZWN1cml0eU9yaWdpbiwgY29udGV4dCwgU3RyaW5nKCkpOworICAgIGlkYkZhY3RvcnktPm9w
ZW4oZGF0YWJhc2VOYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGNhbGxi
YWNrLmdldCgpLCBzZWN1cml0eU9yaWdpbiwgY29udGV4dCwgU3RyaW5nKCkpOwogfQogCiBzdGF0
aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9u
Rm9yRGF0YWJhc2UoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKiBpZGJEYXRhYmFzZSwgY29u
c3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggN2QyYzljZjk5YzEyM2YwOWE0NDE0MzNm
OTAwODAwMjRjZDA5NzhiMS4uMTkzYmYyYjVmNmM2NjZjN2JkNTA2MmFkNDQ3NDQxNWJmYjMwNDI5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcApAQCAtMTMwLDYgKzEzMCwxNiBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2Nr
ZWQoKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKIH0KIAordm9pZCBJREJDYWxsYmFj
a3NQcm94eTo6b25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKQoreworICAgIG1fY2Fs
bGJhY2tzLT5vbkJsb2NrZWQoZXhpc3RpbmdWZXJzaW9uKTsKK30KKwordm9pZCBJREJDYWxsYmFj
a3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uLCBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2UpCit7CisgICAgbV9jYWxsYmFja3Mt
Pm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRy
YW5zYWN0aW9uKSwgbmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFzZSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXgg
NGM3MGI2NjZlYWM4MTNmOWI5OGVjZjg3MmU3OGNkMjQ4NmQ2N2UxYS4uODI1NzU4YWFkZTkzZjQx
ZjI2MjkzMDM2OGJkOTY2NjBmZTUyYTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVm
ZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAg
ICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChp
bnQ2NF90IGV4aXN0aW5nVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRl
ZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U+KTsKIAogcHJpdmF0ZToKICAgICBJREJDYWxsYmFja3NQcm94eShQYXNzT3duUHRy
PFdlYklEQkNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDkwMWI1NWU1NGYyYWFmZTA0ZmZm
YzIyY2E5NmIzNTMxOGVmOTQ3ODYuLjU2YWZlNWZiNWQyYjYyZmE0NDQ5OTU0NDY5MzBhMDFkMGJj
OTc3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFu
c2FjdGkKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbihjb25zdCBT
dHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKKyAgICBBU1NFUlQobV93ZWJJREJEYXRhYmFzZSk7CiAgICAgbV93ZWJJREJE
YXRhYmFzZS0+c2V0VmVyc2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCBlYyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjky
NjkzMGQwZGU1MGUwZWUyZDExNzg1Yi4uMDE5ZTU5YmEwNjFmMGZiODRlM2E5M2FiODk1ZmJhOWJl
ZDVkMWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk6On5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9p
ZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRW
ZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lv
bkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJz
aW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UocmVxdWVzdGVkVmVyc2lv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5LmgKaW5kZXggYWZmZGNlNzdkNWQ5NThkYzAwZTBmNmY4MGFjZmZiODAxMjk1
OGIzYi4uOTk5NWFiZDJiNmFkOWQwMjRlMTUyZjEwZDBlZTYwMzFjODVjM2M1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiBwcml2YXRl
OgogICAgIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJG
YWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBjMWJlYzEwNzdkNmJjZjQ4N2U5OTQxZTBlZDIx
YzZjYmM2MTg2MDE5Li5iYWJjYmFlMTg0MDljNWRkMjU5MmMwZGZkOTIzMzI2ZmJmNjBlOTRhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94
eTo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhCiB9
CiAKIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJh
Y2tzKTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwpAQCAt
MjExLDcgKzIxMSw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0KTsKLSAg
ICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7CisgICAgbV93ZWJJREJGYWN0b3J5
LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyks
IG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwogfQogCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5k
UHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3Rv
cnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuaAppbmRleCAyMmE2ZjUyYTg2OTgxNmM4MDU2NjhkNjg0ZDBhN2JmZmZjMjZh
ZTY5Li5jMGRlOTEwYTkyY2RlYTkxYTNkM2ExYzUzMGEyODA3YzVhYmZhYTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFBy
b3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2
ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2Uo
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXgg
MDgzZGJjY2JlMjY3NWYyMDk5YjUzNTU3ZjQwMTY4ZTNlMDgzZDc2Ny4uMmNiOTBlYTQ2ZTYzYWFh
NjUyODM5NjVhMWM0ZmVlNGMwOTUyMGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYklEQkNhbGxiYWNrc0ltcGw6OldlYklEQkNhbGxiYWNrc0ltcGwo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICA6IG1fY2FsbGJhY2tzKGNh
bGxiYWNrcykKKyAgICAsIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eShmYWxzZSkKIHsKIH0KIApA
QCAtNzIsNiArNzMsMTAgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2Vi
SURCQ3Vyc29yKiBjdXJzb3IsIGNvbnN0IFdlYklEQktleSYga2V5LAogCiB2b2lkIFdlYklEQkNh
bGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7
CisgICAgaWYgKG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eSkgeworICAgICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoc3Rh
dGljX2Nhc3Q8V2ViSURCRGF0YWJhc2UqPigwKSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVh
dGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKSk7CiB9CiAKQEAgLTEwNSw2ICsxMTAsMTcgQEAg
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQoKQogICAgIG1fY2FsbGJhY2tzLT5v
bkJsb2NrZWQoKTsKIH0KIAordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChvbGRWZXJz
aW9uKTsKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgV2ViSURC
RGF0YWJhc2UqIGRhdGFiYXNlKQoreworICAgIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eSA9IHRy
dWU7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0aW9uKSksIElEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2UpKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgK
aW5kZXggMzBkNzQzNmM2YTU5ZjQ4OTYyOTA1MjYwMmFmODkzODQ4MzJiMzkyOC4uMzNjZDIwMjlm
YWNmY2Q1Mjk1ZGQ2NjQ0YWQwMWNjN2RiNzY5OTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNTEsOSArNTEsMTIgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBw
cmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcg
b2xkVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcg
b2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBwcml2
YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworICAg
IGJvb2wgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZjYWFm
M2ZlNTY1OWZhZjMxLi4xNDc1N2JhYzY3MGQ5ZGU0ZmFmYTQ5ZWFhNjg5ZWQ5YzRkYWJiZTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6fldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9s
ZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZl
cnNpb25DaGFuZ2Uob2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQgV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJz
aW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UodmVyc2lvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5oCmluZGV4IDIxYzNkYzdjNWFjNGFkMGJlYThkZjI5MTZlYmIzZjg4YzY3ZmYwNWYu
LjE4NTdjYTY1OGQzMGZjMjYwMDUyMWE2ZGFkMTkzMTMxMzg1N2NmOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogICAgIHZp
cnR1YWwgfldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCisgICAgdmlydHVhbCB2b2lk
IG9uVmVyc2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNp
b24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2
ZXJzaW9uKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGJjNmQwOWZhMWZiOTcwYzI5N2UxNzdhMjE1NGVl
NzEwMThmYWZmZjcuLjkzNDMyODFjZjRkMGFmMTdjYjZjMzIyNTA4MWRmNDA3MWRhZTg3M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNw
cApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSURCRGF0YWJhc2VJ
bXBsOjpXZWJJREJEYXRhYmFzZUltcGwoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+IGRhdGFiYXNlQmFja2VuZCkKICAgICA6IG1fZGF0YWJhc2VCYWNrZW5kKGRhdGFiYXNl
QmFja2VuZCkKKyAgICAsIG1fY2xvc2VQZW5kaW5nKGZhbHNlKQogewogfQogCkBAIC05NCw4ICs5
NSwxMCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0
aGUgY2FsbGJhY2tzIHRoYXQgOjpvcGVuIGdhdmUgdXMgc28gdGhhdCB0aGUgYmFja2VuZCBpbgog
ICAgIC8vIG11bHRpLXByb2Nlc3MgY2hyb21pdW0ga25vd3Mgd2hpY2ggZGF0YWJhc2UgY29ubmVj
dGlvbiBpcyBjbG9zaW5nLgotICAgIGlmICghbV9kYXRhYmFzZUNhbGxiYWNrcykKKyAgICBpZiAo
IW1fZGF0YWJhc2VDYWxsYmFja3MpIHsKKyAgICAgICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwog
ICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2Rh
dGFiYXNlQ2FsbGJhY2tzKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKIH0KQEAgLTEw
NSw2ICsxMDgsOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6b3BlbihXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcyogY2FsbGJhY2tzKQogICAgIEFTU0VSVCghbV9kYXRhYmFzZUNhbGxiYWNrcyk7
CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+cmVnaXN0
ZXJGcm9udGVuZENhbGxiYWNrcyhtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBpZiAobV9jbG9z
ZVBlbmRpbmcpCisgICAgICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRl
eCA0ZjgyNTE4MjBhNDliYmRmZGU1MmZhYjkxZWZmYTVhZWMwOGJhNDZkLi4xNDA5Y2I2NWYwNjVm
YjM1ZDQwMDcwM2Y2YzdiZTcyMjRkZDAwMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CiAgICAgV1RGOjpSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eT4gbV9kYXRhYmFzZUNhbGxiYWNrczsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgZmxhZyB3aGVuIHdlIGNvbnNvbGlkYXRlIHR3by1waGFzZSBvcGVuLgorICAgIC8vIGh0dHA6
Ly93a2IudWcvOTA0MTEKKyAgICBib29sIG1fY2xvc2VQZW5kaW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0
b3J5SW1wbC5jcHAKaW5kZXggZDE0YWM3MWUxOGM4NTkzMTUyZWZkZmQ1YzgzOWUwMTcyMGUzZmZk
Yy4uYWQ3MTQ3NmI3ZWJiNDY4NmVhODI1Yjk2MjE5MTZlNjNiMjkwYWM3NyAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcApAQCAtNjMsMTcg
KzYzLDkgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0YWJhc2VOYW1lcyhXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2UKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5k
LT5nZXREYXRhYmFzZU5hbWVzKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2Fs
bGJhY2tzKSksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKLQotdm9pZCBXZWJJREJGYWN0b3J5
SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUs
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9y
aWdpbiwgMCwgZGF0YURpcik7Ci19Ci0KIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29u
c3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewotICAgIC8vIEZJWE1FOiBQYXNzIHZlcnNpb24gYWxv
bmcgd2hlbiBXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZQotICAgIC8vIGhhcyBh
biBvcGVuIG1ldGhvZCB0aGF0IGFjY2VwdHMgaXQuCi0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+
b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOworICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9w
ZW4obmFtZSwgdmVyc2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxs
YmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBXZWJJREJGYWN0
b3J5SW1wbDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJh
bWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAppbmRleCBmYTQzOGQ3NjQ4ZTM0NjRjNWExY2JkNWNj
ZjU3Y2ZmMGU1NmYzMjg1Li44MzNlZWI1OTEyNTliODUzYzMyMWZkMTE4ZjA5NGE1YjhhN2M4ODY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgK
QEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlJbXBs
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBk
YXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdl
YlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggM2ZjMTA1MzA3YmY1N2Uw
NTQxM2U5ZDE3MmMxNTU5YzU0MDhiYzdjYS4uMWQzOTUwOTZhYWRiM2E1YjNkZTliNzBkYWI2MGYz
MTg5Y2ZiYTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJB
Ym9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtMTAyLDcgKzEwMiw4IEBAIFRFU1QoSURCQWJv
cnRUZXN0LCBUaGVUZXN0KQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9ICJkYiBuYW1lIjsKICAg
ICBNb2NrSURCQ2FsbGJhY2tzIGNhbGxiYWNrczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoImh0dHAiLCAibG9jYWxob3N0IiwgODEp
OwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUq
LywgU3RyaW5nKCkgLypwYXRoKi8pOworICAgIGNvbnN0IGludDY0X3QgRHVtbXlWZXJzaW9uID0g
MjsKKyAgICBmYWN0b3J5LT5vcGVuKG5hbWUsIER1bW15VmVyc2lvbiwgJmNhbGxiYWNrcywgb3Jp
Z2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypwYXRoKi8pOwogfQogCiB9IC8vIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VC
YWNrZW5kVGVzdC5jcHAKaW5kZXggMjI3Nzg4NzVmYTkzNDAyMDc4NzMwMTM4ZTEzYTM0NjE2ZjQz
NTkxMi4uODYwNWMwZjFhYzYyODdmZmRjODI4MThlNWEzZTA1NjM0YThiMmM4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwCkBAIC0xMDAsNiArMTAwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpKTsgfQogICAgIHZpcnR1YWwgfkZha2VJREJEYXRh
YmFzZUNhbGxiYWNrcygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklE
RSB7IH0KIHByaXZhdGU6CiAgICAgRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGZiMmVlMTU5MWMwYzRmMzA0MGY5ZTdkOGYyYTM4NjQwNGFhNDljNTkuLmNlNWQ5YWQw
OWUwZmRiZWUyZmU3MDcxOGFmYTBlMDA3ZGUxNzM1ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wOC0xNCAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgSW5kZXhlZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0
dmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBn
cmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVj
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMTQgIEFk
cmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1h
cmsgY3NzMi4xLzIwMTEwMzIzL2M1NDEtd29yZC1zcC0wMDAuaHRtIGFzIGZhaWxpbmcgb24gV2lu
ZG93cyBDaHJvbWl1bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CmluZGV4IDk5MDgzY2Q3N2E5ZDUwNmIxZjk2NWM4
ZDM0MDVhN2Q4OTJhYTZhNjMuLjVhMDU4Y2YxMjY1OWRjYWE0YmYxNDU4OGVlODQ1NjlhNmM3ZjVj
NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFk
ZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDEzIEBAIGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMikKIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZAogRklYTUU6
IFRoaXMgc2hvdWxkIGdldCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IKIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrCi1GQUlMIFN1Y2Nlc3MgZnVuY3Rp
b24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKwordXBncmFkZU5lZWRlZCgpOgorUEFTUyBkYi52ZXJz
aW9uIGlzIDIKK3RyYW5zYWN0aW9uLmFib3J0KCkKKworb25BYm9ydCgpOgorRkFJTCBldmVudC50
YXJnZXQuZGIudmVyc2lvbiBzaG91bGQgYmUgMC4gV2FzIDIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1l
eHBlY3RlZC50eHQKaW5kZXggZjIyMmNhMTVkMDljNzRkM2EyZjQ0Nzk4ZDIwYmRjMThlNTMyNTE2
Zi4uMDRmMjgxYWFkODQ3ZTg4Njg2MmY3MzlhZTRjZmEyOTQ3MjcyNjJmMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTMzLDE3ICszMyw1NyBAQCBQQVNTIGRi
LnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKIGRiLmNsb3NlKCkKIHJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50
YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgor
UEFTUyBTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rp
b25dIgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBzb21lIHZlcnNpb24gKG9mIHR5
cGUgc3RyaW5nKS4gV2FzIDAgKG9mIHR5cGUgbnVtYmVyKS4KK1BBU1MgZXZlbnQubmV3VmVyc2lv
biBpcyAyCityZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0cmFuc2FjdGlvbkNvbXBs
ZXRlZAorCit0cmFuc2FjdGlvbkNvbXBsZXRlZCgpOgorZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSA9
IHRydWUKKwogZmlyc3RPcGVuV2l0aFZlcnNpb24oKToKLUZBSUwgZGlkVHJhbnNhY3Rpb25Db21w
bGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBkaWRUcmFuc2FjdGlvbkNvbXBs
ZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBTdHJpbmcoZGIpIGlz
ICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKIFBBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxs
Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUg
dmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJl
IFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorUEFT
UyBkYi52ZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQk9w
ZW5EQlJlcXVlc3RdIgogcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIi
KQogUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVl
c3RdIgogcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKLUZBSUwgU3VjY2Vz
cyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorCitzZXRWZXJzaW9uTm90QWxsb3dlZCgp
OgorUEFTUyBldmVudC50eXBlIGlzICJlcnJvciIKK3JlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdl
ID0gWW91IGNhbid0IHVzZSB0aGUgc2V0VmVyc2lvbiBmdW5jdGlvbiBpZiB5b3UndmUgYWxyZWFk
eSBzZXQgdGhlIHZlcnNpb24gdGhyb3VnaCBhbiBvcGVuIGNhbGwuICBUaGUgY3VycmVudCBpbnRl
Z2VyIHZlcnNpb24gaXMgMgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMSkKK3JlcXVlc3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24KKwor
ZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbigpOgorcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2Ug
PSBUaGUgcmVxdWVzdGVkIHZlcnNpb24gKDEpIGlzIGxlc3MgdGhhbiB0aGUgZXhpc3RpbmcgdmVy
c2lvbiAoMikuCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KQorcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBzZWNvbmRVcGdyYWRlTmVlZGVkCityZXF1ZXN0Lm9uc3VjY2VzcyA9
IHRoaXJkT3BlblN1Y2Nlc3MKKworc2Vjb25kVXBncmFkZU5lZWRlZCgpOgorZ290U2Vjb25kVXBn
cmFkZU5lZWRlZCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50
Lm5ld1ZlcnNpb24gaXMgNAorCit0aGlyZE9wZW5TdWNjZXNzKCk6CitQQVNTIGdvdFNlY29uZFVw
Z3JhZGVOZWVkZWQgaXMgdHJ1ZQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRiLnZl
cnNpb24gaXMgNAorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkK
K3JlcXVlc3Qub25zdWNjZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MKKworZm91cnRoT3BlblN1Y2Nl
c3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDQKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tl
ZC1leHBlY3RlZC50eHQKaW5kZXggYmFjM2NjZjJjMzRiZmYwOTQ5NDNlNjEzZmEwZGI2Mzg3ZGZi
YTM5NC4uMDEzOGI2ODFlYWQxMGJjNDg5NzcxYTE1OTA4ZTY0YTkyNmU5YmZkMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJs
b2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSwxNSArMTEsNDIgQEAgaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3QgPSBpbmRleGVkREIub3Bl
bihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNT
IGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorUEFTUyBTdHJpbmcoZXZlbnQpIGlzICJbb2JqZWN0IElE
QlVwZ3JhZGVOZWVkZWRFdmVudF0iCisKIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgotRkFJ
TCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgor
UEFTUyBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBjb25uZWN0aW9uMSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25D
aGFuZ2VIYW5kbGVyCiBQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKIAordmVyc2lvbkNo
YW5nZUhhbmRsZXIoKToKK3Nhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQu
dHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK0ZBSUwgU3RyaW5nKGV2ZW50KSBzaG91bGQgYmUgW29i
amVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdLiBXYXMgW29iamVjdCBJREJVcGdyYWRlTmVlZGVk
RXZlbnRdLgorUEFTUyBldmVudC50YXJnZXQgaXMgY29ubmVjdGlvbjEKK1BBU1MgZXZlbnQub2xk
VmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworCitibG9ja2VkRXZlbnRI
YW5kbGVyKCk6CitQQVNTIHNhd1ZlcnNpb25DaGFuZ2VFdmVudCBpcyB0cnVlCitnb3RCbG9ja2Vk
RXZlbnQgPSB0cnVlCitGQUlMIFN0cmluZyhldmVudCkgc2hvdWxkIGJlIFtvYmplY3QgSURCVmVy
c2lvbkNoYW5nZUV2ZW50XS4gV2FzIFtvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XS4KK1BB
U1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworUEFT
UyBldmVudC50eXBlIGlzICJibG9ja2VkIgorY29ubmVjdGlvbjEuY2xvc2UoKQorCitzZWNvbmRV
cGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyKCk6CitQQVNTIGdvdEJsb2NrZWRFdmVudCBpcyB0cnVl
Citnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCisKIHNlY29uZFN1Y2Nlc3NDYWxs
YmFjaygpOgotRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1MgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVu
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBjMDYwOWVlNGMw
NWExZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwLi41NTFmOGQ4NmViNmU3NzZkZTYzMTg4YTlh
YTAzMTM1MDA4ZWNiNmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtMTAsMTEgKzEwLDI3IEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQogCiAKK3VwZ3Jh
ZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVudC5uZXdWZXJz
aW9uIGlzIDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvYmplY3RzdG9yZScpCit0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlvbi5vbmNvbXBsZXRlOgor
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK3NldFRpbWVvdXQoY2xvc2VEQiwgMCkKKwog
b3BlblN1Y2Nlc3MoKToKIFBBU1MgZGlkQ2FsbENsb3NlREIgaXMgZmFsc2UKLUZBSUwgc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdUcmFu
c2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRkFJTCBk
Yi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3Ry
aW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVu
Z3RoIGlzIDEKK2RiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0b3JlTmFtZXMpCisKK2Nsb3NlREIo
KToKK2RpZENhbGxDbG9zZURCID0gdHJ1ZQorZGIuY2xvc2UoKQogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLWV4cGVjdGVkLnR4dAppbmRleCBlNjVlZGIyNGJkZDZlMjE5NzMyNTI0YzExOTU4
YmUyNDBjOTNmOGNhLi5jM2Y4MDk2ZTlmNGRjYjM2ZTQ2NTEyM2U4Mzg0NWJmNDlmZTJhZDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTks
MTQgKzksMjQgQEAgZGJuYW1lID0gImludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1s
IgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDcpCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdv
cycpCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlv
bi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK2RiLmNsb3NlKCkK
Kwogb3BlblN1Y2Nlc3MoKToKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0
eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3
CiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
b3MnLCAncmVhZHdyaXRlJykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1GQUlMIGNvZGUg
c2hvdWxkIGJlIDExLiBXYXMgOC4KLUZBSUwgZW5hbWUgc2hvdWxkIGJlIEludmFsaWRTdGF0ZUVy
cm9yLiBXYXMgTm90Rm91bmRFcnJvci4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA2NWVkODVkNDgxOWRk
MDBhM2UwZTM0YWM5YzQ0ZDI5Y2M0ZGExZDBiLi4xOGYzM2I4YjQ2ZTJlYjU0MmNjYjk0ODE4OTFj
YmVhODNkYWUwMzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRl
ZC1leHBlY3RlZC50eHQKQEAgLTEwLDEyICsxMCwyMiBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAogCit1cGdy
YWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVy
c2lvbiBpcyA3Cit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ29zJykKK2RiLmNsb3NlKCkKKwordHJhbnNhY3Rpb24ub25jb21wbGV0
ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCisKIG9wZW5TdWNjZXNzKCk6Ci1GQUlM
IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0
eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogdHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignb3MnKQotRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2Vw
dGlvbiA4CitGQUlMIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlv
biAxMQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVk
LW9uLWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZWYxNTNkMGQ5NGUy
MDhjMWYzYTRlYTRjYmI2ZWRhODVjOTdiM2I4OS4uNTI4YmU3NjFhMjllMjA5YTMwN2E0YWNkMzYz
MWYxOTQ4NThjMzAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4
dApAQCAtNDYsNiArNDYsMTAgQEAgY29ubmVjdGlvbjEuY2xvc2UoKQogCiBkZWxldGVEYXRhYmFz
ZVN1Y2Nlc3NDYWxsYmFjaygpOgogCit1cGdyYWRlTmVlZGVkQ2FsbGJhY2soKToKK1BBU1MgZXZl
bnQubmV3VmVyc2lvbiBpcyAxCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorCiBvcGVuV2l0
aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWlu
dmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhh
cy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IGU3NGU1YWE3ZmJhYzY4ZmE1MWZk
ZGE1MWE1NGZmZTUzZjZiOWNhNTguLmQyOGNjN2ZkMDExOWI2NzEwM2JkMzljMTYwZGM5YzQ3ZmQx
Mzg4ZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2
ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xMSw4ICsxMSwxMyBA
QCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVsZXRlU3VjY2VzcygpOgogcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkQ2Fs
bGJhY2soKToKK2dvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5v
bGRWZXJzaW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCisKIGZpcnN0U3VjY2Vz
c0V2ZW50SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0
cnVlCiBjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVy
c2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKIFBBU1MgU3RyaW5n
KGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCkBAIC0yNCw3ICsyOSwxMyBA
QCByZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpCiByZXF1ZXN0Lm9uZXJyb3IgPSBz
ZXRWZXJzaW9uRXJyb3IKIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxs
YmFjawogcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrCi1GQUlM
IG9udmVyc2lvbmNoYW5nZSBjYWxsZWQgdW5leHBlY3RlZGx5CisKK3NldFZlcnNpb25FcnJvcigp
OgorT3BlbiB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0aW9uMSB3ZXJlIHRv
IGdldCBhIHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZlcmVkIGJlZm9yZSB0
aGUgdGVzdCBmaW5pc2hlcworbmV3X2RiID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzInKQor
bmV3X2RiLm9uc3VjY2VzcyA9IG5ld0RCU3VjY2VzcworCituZXdEQlN1Y2Nlc3MoKToKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1x
dWV1ZS1leHBlY3RlZC50eHQKaW5kZXggNjk5MjA5YWY3N2QzMWEyYWVkY2JmYTRkNDMxYjkzZGIx
YWUxMTJkZC4uY2VmZjA5NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0CkBAIC02NSw4ICs2NSwxMyBAQCBGQUlMIGV2ZW50
Lm9sZFZlcnNpb24gc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgdW5kZWZpbmVkCiBGQUlMIGV2ZW50
Lm5ld1ZlcnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5l
ZCAob2YgdHlwZSB1bmRlZmluZWQpLgogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwK
IAordXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVl
CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAK
Kwogb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6Ci1GQUlMIGdvdFVwZ3JhZGVOZWVk
ZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RVcGdyYWRlTmVlZGVk
RXZlbnQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMu
bGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVy
c2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCAzMzcwY2FkMDA0NzE2YzNk
NDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiLi45MDU0NzhkZGU0ODcyMjgzMmM4MTBjMmQ2OTNiZDI2
MTkyMzg5YWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4
dApAQCAtMTMsMTcgKzEzLDMzIEBAIFNob3VsZCB0cmlnZ2VyOgogNC4xLjc6IElmIHRoZSB2ZXJz
aW9uIG9mIGRiIGlzIGxvd2VyIHRoYW4gdmVyc2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZvciBy
dW5uaW5nIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24sIHZl
cnNpb24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suCiA0LjEuOTogUmV0dXJuIGNvbm5l
Y3Rpb24uCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQotRkFJTCBTdHJpbmco
cmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0
IElEQlJlcXVlc3RdLgorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCT3BlbkRC
UmVxdWVzdF0iCiAKK1BBU1MgSW4gdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOgorVGVz
dCA0LjguOS4xOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMg
IltvYmplY3QgSURCRGF0YWJhc2VdIgorVGVzdCA0LjguOS4zOgorUEFTUyBldmVudC5vbGRWZXJz
aW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzICJkb25lIgorVGVzdCA0LjEuNDoKK1BBU1MgZGIubmFtZSBpcyBkYm5hbWUK
K1BBU1MgZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlz
IDAKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCitQQVNTIFN0cmluZyh0
cmFuc2FjdGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorb3MgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic29tZU9TIikKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCiAKIG9w
ZW5TdWNjZXNzKCk6CiBUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB3YXMgcnVuLgotRkFJTCBzYXdVcGdyYWRlTmVlZGVkIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCi1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KK1BBU1Mgc2F3VXBncmFkZU5lZWRlZCBpcyB0cnVlCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29t
cGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBLaW5kIG9mIHRlc3QgNC4x
Ljk6CiBQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgotRkFJTCBkYi52
ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5n
KS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158443</attachid>
            <date>2012-08-14 16:37:18 -0700</date>
            <delta_ts>2012-08-14 18:10:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120814163646.patch</filename>
            <type>text/plain</type>
            <size>86767</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRmNmRmM2NkNGZiZmFi
NjUxODkzMzIzNWQyZTZhMGI2MzE2MjU4OC4uMGVlMTEwNDUwNDhkMjA2MzBhZWNlN2RkOGFjOGRm
ODFkMTBkNTYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgV2Ug
bm93IHRha2UgYSBwb2ludGVyIHRvIHRoZSBvcGVuREJSZXF1ZXN0IGlmIHRoaXMgaXMgYSB2ZXJz
aW9uCisgICAgICAgIGNoYW5nZSB0cmFuc2FjdGlvbiBhcyBhIHJlc3VsdCBvZiBhbiBvcGVuLXdp
dGgtdmVyc2lvbiBjYWxsIHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGNsZWFyIHRoZSB0cmFuc2Fj
dGlvbiBwcm9wZXJ0eSBvbiB0aGUgb3BlbkRCUmVxdWVzdCBhcyBzb29uIGFzIHRoZQorICAgICAg
ICB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIGRpc3BhdGNoZWQgcGVyIHRoZSBzcGVjICgiLi4uIHNl
dCByZXF1ZXN0J3MKKyAgICAgICAgdHJhbnNhY3Rpb24gcHJvcGVydHkgdG8gbnVsbC4uLiAiLCBj
dXJyZW50bHkgNC44LjEyKS4KKworICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6fklEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0xNCAgTWlraGFpbCBQb3pkbnlh
a292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBXZWJLaXRUZXN0
UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjhiZTRiYjMwZmE2MzY1ZmM1NjFkOTg4
YmNkZmZiYWFjNzQ3MTY1ZS4uYWQ4MTBhMzllMmNhNjJiODM0MTUxMzI5MzNmOWUxMjQ2NmYwMzhm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAxMi0wOC0x
NCAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhl
ZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2Vk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5
OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgor
ICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5
OjpzZXRWZXJzaW9uKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lv
bkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KToKKyAg
ICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OklEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFByb3h5KToKKyAgICAg
ICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUpOgorICAgICAgICAq
IHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2Fs
bGJhY2tzSW1wbDo6V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgIFdlIGRvbid0IHdhbnQgdG8gY3Jl
YXRlIElEQkRhdGFiYXNlQmFja2VuZFByb3h5IGFnYWluIGlmIHdlJ3ZlIGFscmVhZHkKKyAgICAg
ICAgY3JlYXRlZCBpdCBkdXJpbmcgdXBncmFkZU5lZWRlZC4gIFRoaXMgbWFrZXMKKyAgICAgICAg
SURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZCkgcmV1c2UgaXRzIHByZXZp
b3VzCisgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSBpZiBpdCBoYXMgb25lLgor
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvblVw
Z3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmg6CisgICAg
ICAgIChXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJE
YXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICog
c3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRmFjdG9y
eUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5oOgorICAgICAg
ICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJUcmFuc2FjdGlvbkNhbGxi
YWNrc0ltcGw6Om9uQ29tcGxldGUpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0T25Db3JydXB0
VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9JREJE
YXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMi0wOC0xNCAgSWFpbiBNZXJyaWNrICA8aHVz
a3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgdGVzdCB0byBXZWJG
cmFtZVRlc3QgZm9yIHNlbGVjdFJhbmdlIGFuZCB2aXNpYmxlUG9zaXRpb25Gb3JXaW5kb3dQb2lu
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cAppbmRleCA1YzNkZmNiNmI1NDJjMWJlMDZiMjQxYjQ3Y2U5YmFjYjliNjYyOWI0Li4yYTM5Y2Fi
ZmIzOTRkNmM2ZTJiODM5YmM3YzEyODg2ODgzNjVjZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5j
bHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQu
aCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJz
aW9uQ2hhbmdlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
QEAgLTIwOCw2ICsyMDksNyBAQCBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBJ
REJEYXRhYmFzZTo6c2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIH0KIAogICAg
IFJlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gcmVxdWVzdCA9IElEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIHZlcnNpb24p
OworICAgIEFTU0VSVChtX2JhY2tlbmQpOwogICAgIG1fYmFja2VuZC0+c2V0VmVyc2lvbih2ZXJz
aW9uLCByZXF1ZXN0LCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBlYyk7CiAgICAgcmV0dXJuIHJlcXVl
c3Q7CiB9CkBAIC0zMDEsNiArMzAzLDE3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlQ29ubmVj
dGlvbigpCiAgICAgfQogfQogCit2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgaWYgKG1fY29udGV4
dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBlbnF1ZXVl
RXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbmV3VmVyc2lv
biwgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOworfQorCiB2b2lkIElEQkRhdGFi
YXNlOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIGlmICht
X2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCkBAIC0zMTQsNiAr
MzI3LDcgQEAgdm9pZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZTo6cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygp
CiB7CisgICAgQVNTRVJUKG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5yZWdpc3RlckZyb250
ZW5kQ2FsbGJhY2tzKG1fZGF0YWJhc2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMyNmE1ODgzZGNm
Mzk0NzNjYWExMDk3MjkwNWYzZmU2NzVlLi5hN2Q3MmNlMTk4ZjNlMGZkYWFkMGNhM2YzMGY4NmM0
ZWYzN2E3MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIodmVyc2lvbmNoYW5nZSk7CiAKICAgICAvLyBJREJEYXRhYmFzZUNhbGxi
YWNrcworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9u
LCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhMzEyNTFjOGQ2Mzc4NTBjZjg3YWQ4Y2E0YzJl
OWVlMWE1YTI4ZWIwLi5mOWIxYWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDQ0LDEwICs0NDQsNiBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3
b24ndCBiZSByZWFjaGVkIHVudGlsIGl0J3MgZXhwb3NlZCB0byBzY3JpcHQgaW4KLSAgICAvLyB3
YmsudWcvOTI4OTcuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KICAgICBSZWZQdHI8SURC
Q2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CiAgICAgQVNTRVJUKGNhbGxiYWNr
cyk7CiAgICAgZm9yIChEYXRhYmFzZUNhbGxiYWNrc1NldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VDYWxsYmFja3NT
ZXQuZW5kKCk7ICsraXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDE2YTllYTZjNTA4YjBkOTJiNjFl
NDk5N2M1NDMwMTMyYTZkMmFjYWEuLmZhYTE2NmY3ZjUxMWZmNjY2NmYzOTczZGJiODQwNGI3Zjli
NTIzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25W
ZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApp
bmRleCAxOTQxMmZjYmU1MGFiNDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmLi5jZWI3YWYzMWYz
ZTIyNDg2MWUwNTA3NjIxMGZhZmM1YTA1OGRmMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHAKQEAgLTUyLDYgKzUyLDEyIEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZl
cnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogICAgICAgICBtX2RhdGFiYXNlLT5v
blZlcnNpb25DaGFuZ2UodmVyc2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsOjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNp
b24pCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uVmVyc2lv
bkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGw6OnVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGU4YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2Rm
YjgyYmU3ZmIuLjAyYzhkZTBkZmU5ZjZlZmRlZDY4MDViN2JhYzkyMTc4ZmI4MDg4ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNp
b25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBjZjUy
Y2MxZmUyYjEzNTViNmM1NGVkY2UyNjVlMGYzZThjM2E1ZTkxLi5jODNiYTM2NDVkYmY2ZDM5ODNj
OWNjYTdkN2IzN2FiMTUwNzcyYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIklEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAi
SURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3Bl
bkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMTA1LDcgKzEwNSw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1Jl
ZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSkgewogICAgICAgICBlYyA9
IE5BVElWRV9UWVBFX0VSUjsKQEAgLTExNCwxMSArMTE0LDE2IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTCiAgICAgaWYgKCFpc0NvbnRleHRWYWxpZChjb250ZXh0KSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAgbV9iYWNrZW5kLT5vcGVu
KG5hbWUsIHJlcXVlc3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldElu
ZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IHJlcXVlc3QgPSBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55Ojpj
cmVhdGUodGhpcyksIHZlcnNpb24pOworICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9u
LCByZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVk
REJEYXRhYmFzZVBhdGgoY29udGV4dCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitQYXNz
UmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICByZXR1cm4gb3Blbihjb250ZXh0LCBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpO
b0ludFZlcnNpb24sIGVjKTsKK30KKwogUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
bmFtZS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5oCmluZGV4IDQ2MTFjYjZjNGZlODM5OTBiNDcyNGE0M2JmMDljOWE1YTk1ZDg4OGQu
LjM2NDViYjgxZGM3ZWU5NjY5MDVkYTY1MmMwNjRkYTczODZmNjUzZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTMwLDcgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01OCw3ICs1OCw4
IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VOYW1l
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIHNob3J0IGNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQ
dHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggMDM4OWViMmFhZTdlMTI5OTU0
ZDlhY2YwM2E1OWZmYmNjN2ZiYWFjYy4uYmY3MWEyZGQyNWQxZmY5NWUyNjQzNWY0ZTQxZjBjNDFi
OTc2NzJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwKQEAgLTMwLDcgKzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIF0gSURCRmFj
dG9yeSB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1l
bnRlZEFzPWdldERhdGFiYXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1l
cygpOwogCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUsIGlu
IFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGluIERP
TVN0cmluZyBuYW1lKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmNwcAppbmRleCA2M2JkNDc4M2U1NGFlMzFmNGQ0OTU5NmYzYjYwZDlh
ZjgyNTRjOWRjLi44ZGE1YzAyZTQyM2Y2ZjY0ZTU3OTczMGRiNzNmYTI5ZWMyYmU0NjA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW1wbC5jcHAKQEAgLTE1MCwxMCArMTUwLDggQEAgUGFzc1JlZlB0cjxJREJCYWNr
aW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVm
UHRyPFMKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURCRmFj
dG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKIHsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEgcGFy
YW1ldGVyIGFuZCBwbHVtYiB0aHJvdWdoIGZyb20gamF2YXNjcmlwdC4KLSAgICBpbnQ2NF90IHZl
cnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CiAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNv
bnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFt
ZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IGNhMWQwNTI4
MmE4YzVlZGY3NjZkNWU1NTUwOGZhZTBhOWMwNDhjNjUuLmNhZDNiNWEyNGIyOTlhOTI5OWMyYWQy
OTRlM2IyZWEwNGNmZDcyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmlu
ZyYgZmlsZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVh
bCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYyMWVh
NDcxOWY2MzY5NDI5Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0NGVh
NDhhY2Y2NjZmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0
X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzZjhlOTc5YzU3Njg3MDgyMjllZjdhNmQzZDM5MTBmNTI2
MGUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJ
REJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVx
dWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKK3sKKyAgICBSZWZQdHI8SURCT3BlbkRC
UmVxdWVzdD4gcmVxdWVzdChhZG9wdFJlZihuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBz
b3VyY2UsIHZlcnNpb24pKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAg
cmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVu
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
QW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKKyAgICA6IElEQlJlcXVlc3QoY29udGV4dCwg
c291cmNlLCAwKQorICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCit7CisgICAgQVNTRVJUKCFtX3Jl
c3VsdCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KCkKK3sKK30K
KworY29uc3QgQXRvbWljU3RyaW5nJiBJREJPcGVuREJSZXF1ZXN0OjppbnRlcmZhY2VOYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQk9wZW5EQlJl
cXVlc3Q7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qgb2xk
VmVyc2lvbikKK3sKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlz
TnVsbCgpICYmICFtX3Jlc3VsdCk7CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRF
dmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLmJsb2NrZWRF
dmVudCkpOworfQorCit2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2
NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBwcnBUcmFuc2FjdGlvbkJhY2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiBwcnBEYXRhYmFzZUJhY2tlbmQpCit7CisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZl
bnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kID0gcHJwRGF0YWJhc2VCYWNrZW5kOworICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHBy
cFRyYW5zYWN0aW9uQmFja2VuZDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNl
ID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNl
QmFja2VuZCk7CisKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJh
bnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9uQmFj
a2VuZCwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwg
dGhpcyk7CisgICAgdHJhbnNhY3Rpb25CYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0
KCkpOworICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9udGVuZDsKKyAgICBtX3Jlc3VsdCA9IElEQkFu
eTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CisKKyAgICBpZiAob2xkVmVyc2lvbiA9
PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pIHsKKyAgICAgIC8vIFRoaXMgZGF0
YWJhc2UgaGFzbid0IGhhZCBhbiBpbnRlZ2VyIHZlcnNpb24gYmVmb3JlLgorICAgICAgb2xkVmVy
c2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIH0KKyAg
ICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwg
bV92ZXJzaW9uLCBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7Cit9CisKK2Jvb2wg
SURCT3BlbkRCUmVxdWVzdDo6c2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAo
bV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVh
ZHlTdGF0ZSA9PSBET05FKTsKKyAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3NDJmMWY0M2E4ZjZmNzcxYWYxMjg1NjAy
NGZmNjgyODVhY2JiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBJREJPcGVuREJSZXF1ZXN0X2gKKyNkZWZpbmUgSURCT3BlbkRCUmVxdWVzdF9oCisKKyNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJPcGVuREJSZXF1ZXN0IDogcHVibGljIElE
QlJlcXVlc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNv
dXJjZSwgaW50NjRfdCB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0KCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworCisgICAgLy8gRXZl
bnRUYXJnZXQKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgp
IGNvbnN0OworCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihibG9ja2VkKTsK
KyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHVwZ3JhZGVuZWVkZWQpOworCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0IE9W
RVJSSURFOworCitwcml2YXRlOgorICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbik7CisK
KyAgICBpbnQ2NF90IG1fdmVyc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCT3BlbkRC
UmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjZjNzM1OWEwYTY1ZTY5NWIwODQ1ZGU1
ZjUzNTgzYTZjZDgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgICAgICBFdmVu
dFRhcmdldAorICAgIF0gSURCT3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3QgeworICAgICAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9udXBncmFkZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBmMDg4NmM2NmNiMWRmY2Rj
ZjA0YzEwM2ZlYTFkNThjMzA1OGU5MjRhLi45NDMyZjg1Y2ZiMGI3ODgyNmMxMmY0ZTMzOGIxNDg2
NzRmZGUyMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcApAQCAtNTMsMTUgKzUzLDE3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
UmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSCiAK
IElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jlc3VsdCgwKQog
ICAgICwgbV9lcnJvckNvZGUoMCkKLSAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fY29u
dGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAg
ICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcpCiAgICAgLCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNlKQot
ICAgICwgbV9jb250ZXh0U3RvcHBlZChmYWxzZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkKICAg
ICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29y
VHlwZSkKICAgICAsIG1fY3Vyc29yRGlyZWN0aW9uKElEQkN1cnNvcjo6TkVYVCkKICAgICAsIG1f
cGVuZGluZ0N1cnNvcigwKQorICAgICwgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50KGZhbHNl
KQogewogICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJl
Z2lzdGVyUmVxdWVzdCh0aGlzKTsKQEAgLTI3NywxMCArMjc5LDE2IEBAIHZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kKQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7Ci0gICAgaWRiRGF0YWJhc2UtPnJl
Z2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKLQotICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVh
dGUoaWRiRGF0YWJhc2UucmVsZWFzZSgpKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRh
dGFiYXNlOworICAgIGlmIChtX3Jlc3VsdCkgeworICAgICAgICBpZGJEYXRhYmFzZSA9IG1fcmVz
dWx0LT5pZGJEYXRhYmFzZSgpOworICAgICAgICBBU1NFUlQoaWRiRGF0YWJhc2UpOworICAgICAg
ICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGJhY2tlbmQpOworICAgICAgICBpZGJEYXRhYmFzZS0+cmVnaXN0ZXJGcm9u
dGVuZENhbGxiYWNrcygpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRh
dGFiYXNlLnJlbGVhc2UoKSk7CisgICAgfQogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNz
RXZlbnQoKSk7CiB9CiAKQEAgLTQyNiw4ICs0MzQsNyBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgQVNTRVJUKG1fZW5xdWV1ZWRF
dmVudHMuc2l6ZSgpKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAg
ICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMpOwotICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UobV9yZWFkeVN0YXRlIDwgRE9ORSwgIm1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMgJWQi
LCBET05FLCBtX3JlYWR5U3RhdGUpOwotCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5
U3RhdGUgPCBET05FLCAiV2hlbiBkaXNwYXRjaGluZyBldmVudCAlcywgbV9yZWFkeVN0YXRlIDwg
RE9ORSglZCksIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
RE9ORSwgbV9yZWFkeVN0YXRlKTsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVz
KCkuYmxvY2tlZEV2ZW50KQogICAgICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwogCkBAIC00NTYs
MTEgKzQ2MywxMiBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9t
IGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCi0g
ICAgQVNTRVJUKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCBl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IHx8IGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCk7Ci0gICAgY29uc3QgYm9vbCBzZXRUcmFuc2Fj
dGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLnN1Y2Nlc3NFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JF
dmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VS
UikpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZl
bnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50IHx8IGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCwgImV2ZW50IHR5cGUg
d2FzICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBjb25z
dCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
SURCX0FCT1JUX0VSUikpOwogCiAgICAgaWYgKHNldFRyYW5zYWN0aW9uQWN0aXZlKQogICAgICAg
ICBtX3RyYW5zYWN0aW9uLT5zZXRBY3RpdmUodHJ1ZSk7CisKICAgICBib29sIGRvbnRQcmV2ZW50
RGVmYXVsdCA9IElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0KCksIHRhcmdl
dHMpOwogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkKICAgICAgICAgbV90cmFuc2FjdGlv
bi0+c2V0QWN0aXZlKGZhbHNlKTsKQEAgLTQ2OCw2ICs0NzYsMTEgQEAgYm9vbCBJREJSZXF1ZXN0
OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmIChjdXJzb3JU
b05vdGlmeSkKICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnBvc3RTdWNjZXNzSGFuZGxlckNhbGxi
YWNrKCk7CiAKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFkZW5l
ZWRlZEV2ZW50KSB7CisgICAgICAgIEFTU0VSVCghbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50
KTsKKyAgICAgICAgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZTsKKyAgICB9CisK
ICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBkb250UHJldmVudERlZmF1bHQgJiYgIW1fcmVxdWVz
dEFib3J0ZWQpIHsKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnNldEVycm9yKG1fZXJyb3Ip
OwpAQCAtNDk0LDYgKzUwNywxNiBAQCB2b2lkIElEQlJlcXVlc3Q6OnVuY2F1Z2h0RXhjZXB0aW9u
SW5FdmVudEhhbmRsZXIoKQogICAgIH0KIH0KIAordm9pZCBJREJSZXF1ZXN0Ojp0cmFuc2FjdGlv
bkRpZERpc3BhdGNoQ29tcGxldGVPckFib3J0KCkKK3sKKyAgICBBU1NFUlQobV90cmFuc2FjdGlv
bik7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpKTsKKyAgICBB
U1NFUlQobV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICBtX3JlYWR5U3RhdGUg
PSBQRU5ESU5HOworfQorCiB2b2lkIElEQlJlcXVlc3Q6OmVucXVldWVFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKIHsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwg
bV9yZWFkeVN0YXRlID09IERPTkUpOwpAQCAtNTAxLDcgKzUyNCw3IEBAIHZvaWQgSURCUmVxdWVz
dDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIGlmIChtX2NvbnRl
eHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVk
RXZlbnQsICJXaGVuIHF1ZXVlaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgd2FzICVkIiwgZXZl
bnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3JlYWR5U3RhdGUpOwogCiAgICAg
RXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRR
dWV1ZSgpOwogICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggZDgxYzNmNzg0YWNhNGY2MmRkYTNl
ODUyZjRhNTk0MzQ5ZDA5M2I1NS4uNjY3YTE1OWRmMmM2MmE0ODM0ZjRlMjA3NjAxMDhmN2QwNTJi
ZjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NX
aXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8
UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiA+JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfSAvLyBOb3QgaW1wbGVtZW50ZWQuIENh
bGxiYWNrIHNob3VsZCBub3QgcmVhY2ggdGhlIHJlbmRlcmVyIHNpZGUuCiAgICAgdmlydHVhbCB2
b2lkIG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlz
dGluZ1ZlcnNpb24pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIC8vIEFjdGl2ZURP
TU9iamVjdAogICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBPVkVS
UklERTsKQEAgLTEwMiwxOCArMTAzLDI0IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBF
dmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOyB9CiAgICAgdmlydHVhbCB2b2lk
IHVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKIAorICAgIHZvaWQgdHJhbnNhY3Rp
b25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCgpOworCiAgICAgdXNpbmcgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPjo6cmVmOwogICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPElEQkNhbGxiYWNrcz46OmRlcmVmOwogCiBwcm90ZWN0ZWQ6CiAgICAgSURCUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCVHJh
bnNhY3Rpb24qKTsKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7Ci0g
ICAgYm9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Q7CiAKICAgICBSZWZQdHI8SURCQW55PiBtX3Jlc3VsdDsK
ICAgICB1bnNpZ25lZCBzaG9ydCBtX2Vycm9yQ29kZTsKICAgICBTdHJpbmcgbV9lcnJvck1lc3Nh
Z2U7CiAgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOworICAgIGJvb2wgbV9jb250ZXh0U3Rv
cHBlZDsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247CisgICAgUmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgYm9vbCBtX3JlcXVlc3RBYm9ydGVkOyAvLyBNYXkg
YmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVuIHJlY2VpdmUgYXN5bmMgb25zdWNjZXNzOyBp
Z25vcmUgdnMuIGFzc2VydC4KIAogcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldApAQCAtMTI2
LDExICsxMzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmVzdWx0Q3Vyc29yKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKIAogICAgIFJlZlB0
cjxJREJBbnk+IG1fc291cmNlOwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2Fj
dGlvbjsKIAotICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwotICAgIGJvb2wgbV9yZXF1ZXN0
QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rpb24gdGhlbiByZWNlaXZlIGFz
eW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCi0gICAgYm9vbCBtX2NvbnRleHRTdG9w
cGVkOwogICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9lbnF1ZXVlZEV2ZW50czsKIAogICAg
IC8vIE9ubHkgdXNlZCBpZiB0aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBhIGN1cnNvci4KQEAgLTE0
MCw2ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJLZXk+IG1fY3Vyc29yS2V5Owog
ICAgIFJlZlB0cjxJREJLZXk+IG1fY3Vyc29yUHJpbWFyeUtleTsKICAgICBSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtX2N1cnNvclZhbHVlOworICAgIGJvb2wgbV9kaWRGaXJlVXBncmFk
ZU5lZWRlZEV2ZW50OwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmNwcAppbmRleCA3NjEyMzQ3MDE0MTgzYzlkYTYxZThkYmFmZTY1ZmEzODU5OTkzNDdlLi41
NzRmMjU2NWM0MTZiNGRlNDMyZjA3NjU4OWY4MWJiYWE2ZjY2NTBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9y
ZS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1
ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25N
b25pdG9yLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgogCkBAIC00Myw3ICs0NCwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5z
YWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9u
OjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYikKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b24+IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBiYWNr
ZW5kLCBtb2RlLCBkYikpKTsKKyAgICBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0ID0g
MDsKKyAgICByZXR1cm4gY3JlYXRlKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJS
ZXF1ZXN0KTsKK30KKworUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUg
bW9kZSwgSURCRGF0YWJhc2UqIGRiLCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQor
eworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElE
QlRyYW5zYWN0aW9uKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KSkp
OwogICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gdHJhbnNh
Y3Rpb24ucmVsZWFzZSgpOwogfQpAQCAtNzksMTAgKzg2LDExIEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogfQogCiAKLUlEQlRyYW5z
YWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJh
bnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQorSURCVHJhbnNhY3Rpb246OklE
QlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6
TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVl
c3QpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYmFja2Vu
ZChiYWNrZW5kKQogICAgICwgbV9kYXRhYmFzZShkYikKKyAgICAsIG1fb3BlbkRCUmVxdWVzdChv
cGVuREJSZXF1ZXN0KQogICAgICwgbV9tb2RlKG1vZGUpCiAgICAgLCBtX2FjdGl2ZSh0cnVlKQog
ICAgICwgbV9zdGF0ZShVbnVzZWQpCkBAIC0xODIsNyArMTkwLDcgQEAgdm9pZCBJREJUcmFuc2Fj
dGlvbjo6b2JqZWN0U3RvcmVEZWxldGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogdm9pZCBJREJU
cmFuc2FjdGlvbjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogewotICAgIEFTU0VSVChtX3N0YXRl
ICE9IEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fc3RhdGUgIT0gRmluaXNo
ZWQsICJBIGZpbmlzaGVkIHRyYW5zYWN0aW9uIHRyaWVkIHRvIHNldEFjdGl2ZSglcykgaW4gJXAi
LCBhY3RpdmUgPyAidHJ1ZSIgOiAiZmFsc2UiLCB0aGlzKTsKICAgICBpZiAobV9zdGF0ZSA9PSBG
aW5pc2hpbmcpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBVbnVzZWQg
fHwgbV9zdGF0ZSA9PSBVc2VkKTsKQEAgLTM3NSw3ICszODMsMTIgQEAgYm9vbCBJREJUcmFuc2Fj
dGlvbjo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIAogICAgIC8vIEZJ
WE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHBy
b2JhYmx5IG5lZWQgdG8gY2hhbmdlLgogICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jb21wbGV0ZUV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFi
b3J0RXZlbnQpOwotICAgIHJldHVybiBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50
LmdldCgpLCB0YXJnZXRzKTsKKyAgICBib29sIHJldHVyblZhbHVlID0gSURCRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CisgICAgLy8gRklYTUU6IFRyeSB0
byBjb25zdHJ1Y3QgYSB0ZXN0IHdoZXJlIHx0aGlzfCBvdXRsaXZlcyBvcGVuREJSZXF1ZXN0IGFu
ZCB3ZQorICAgIC8vIGdldCBhIGNyYXNoLgorICAgIGlmIChtX29wZW5EQlJlcXVlc3QpCisgICAg
ICAgIG1fb3BlbkRCUmVxdWVzdC0+dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9y
dCgpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAogYm9vbCBJREJUcmFuc2FjdGlvbjo6
Y2FuU3VzcGVuZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCAxZjdhZjdkYWQxYmU5NDhmNmI0MTk1N2Y3OWU1ZjY4
NzQyYjk5YWYwLi4wMDVlMzczNjMwYTRkMmZmMmViYWZkODFlZTM2ZWEwYzk4OWE5MjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSURCQ3Vyc29yOwog
Y2xhc3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJPYmplY3RTdG9yZTsKK2NsYXNzIElEQk9wZW5E
QlJlcXVlc3Q7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
cHVibGljOgpAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0
YWJhc2UqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4sIE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVzdCopOwogICAgIHZp
cnR1YWwgfklEQlRyYW5zYWN0aW9uKCk7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBtb2RlUmVhZE9ubHkoKTsKQEAgLTExOSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
UmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz46OmRlcmVmOwogCiBwcml2YXRlOgot
ICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIE1vZGUsIElEQkRhdGFiYXNlKik7CisgICAg
SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJS
ZXF1ZXN0Kik7CiAKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAg
ICAgdm9pZCBjbG9zZU9wZW5DdXJzb3JzKCk7CkBAIC0xNDIsNiArMTQ0LDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZDsK
ICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7CisgICAgSURCT3BlbkRCUmVxdWVz
dCogbV9vcGVuREJSZXF1ZXN0OwogICAgIGNvbnN0IE1vZGUgbV9tb2RlOwogICAgIGJvb2wgbV9h
Y3RpdmU7CiAgICAgU3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIxMjA1NDU4ZTRmNDc5NTlhM2VjODkwNGJhNTYwNmMyZjEyZDE5YTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZl
bnQuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSURCVXBncmFkZU5lZWRlZEV2ZW50LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJJREJBbnkuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPElEQlVwZ3JhZGVOZWVkZWRFdmVudD4g
SURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90
IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQoreworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSURCVXBncmFkZU5lZWRlZEV2ZW50KG9sZFZlcnNpb24sIG5ld1ZlcnNp
b24sIGV2ZW50VHlwZSkpOworfQorCitJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OklEQlVwZ3JhZGVO
ZWVkZWRFdmVudChpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpCisgICAgOiBFdmVudChldmVudFR5cGUsIGZhbHNlIC8q
Y2FuQnViYmxlKi8sIGZhbHNlIC8qY2FuY2VsYWJsZSovKQorICAgICwgbV9vbGRWZXJzaW9uKG9s
ZFZlcnNpb24pCisgICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbikKK3sKK30KKworSURCVXBn
cmFkZU5lZWRlZEV2ZW50Ojp+SURCVXBncmFkZU5lZWRlZEV2ZW50KCkKK3sKK30KKworaW50NjRf
dCBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24oKQoreworICAgIHJldHVybiBtX29s
ZFZlcnNpb247Cit9CisKK2ludDY0X3QgSURCVXBncmFkZU5lZWRlZEV2ZW50OjpuZXdWZXJzaW9u
KCkKK3sKKyAgICByZXR1cm4gbV9uZXdWZXJzaW9uOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JJREJVcGdyYWRlTmVlZGVkRXZlbnQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgwNjcxZDI0NDhhNzYxMDgxMmZiZjU1MDA5Yzk2MmFjNGEyMDVlNzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJVcGdyYWRlTmVlZGVk
RXZlbnRfaAorI2RlZmluZSBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaAorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIklEQk1ldGFk
YXRhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBJREJBbnk7CisKK2NsYXNzIElEQlVwZ3JhZGVOZWVkZWRFdmVudCA6IHB1YmxpYyBF
dmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVXBncmFkZU5lZWRlZEV2
ZW50PiBjcmVhdGUoaW50NjRfdCBvbGRWZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9J
bnRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0lu
dFZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlID0gQXRvbWljU3RyaW5nKCkp
OworICAgIHZpcnR1YWwgfklEQlVwZ3JhZGVOZWVkZWRFdmVudCgpOworCisgICAgdmlydHVhbCBp
bnQ2NF90IG9sZFZlcnNpb24oKTsKKyAgICB2aXJ0dWFsIGludDY0X3QgbmV3VmVyc2lvbigpOwor
CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBJREJVcGdyYWRlTmVlZGVkRXZlbnQoaW50NjRfdCBvbGRWZXJzaW9u
LCBpbnQ2NF90IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKKwor
ICAgIGludDY0X3QgbV9vbGRWZXJzaW9uOworICAgIGludDY0X3QgbV9uZXdWZXJzaW9uOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCisKKyNlbmRpZiAvLyBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVu
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDc3YjAwMGQ0MjJmYjcyN2Q0MDA4MjM2OThhNDAxMWQyMjFkNTdh
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBz
dG9yYWdlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURf
REFUQUJBU0UKKyAgICBdIElEQlVwZ3JhZGVOZWVkZWRFdmVudCA6IEV2ZW50IHsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb247CisgICAg
fTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxMTg4NzczZTk5MzNjNDVmYjdkMjdlOTRjYzdhNWRi
MjA2OWNkYzk2Li5jYmY0MWE4MzM2MzAwNTI2OTRjODJhNTU5NjM4YzBiYzY3NWZjMjUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC04MjEsOCArODIxLDEwIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRs
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRl
eGVkRGF0YWJhc2UuaWRsJywKQEAgLTE1MTQsNiArMTUxNiw4IEBACiAgICAgICAgICAgICAnTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3Bw
JywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNh
Y3Rpb25Nb25pdG9yLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwJywKQEAgLTE1MjcsNiArMTUzMSw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCcsCisgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCcsCisgICAgICAg
ICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNmQwYTEwNTczOGRhOWU4MGE1YTgzMzk3MDdi
NDMxYWQ5MDIzZGEzMi4uYTJmYWVjMTI4MzRiYmE4NDg4Yzc0ZmZmM2RhZDg1MTU4MGY2MDkzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIG1hY3JvKHRleHRJbnB1dCkgXAogICAgIG1hY3JvKHVubG9hZCkgXAogICAg
IG1hY3JvKHVwZGF0ZXJlYWR5KSBcCisgICAgbWFjcm8odXBncmFkZW5lZWRlZCkgXAogICAgIG1h
Y3JvKHZlcnNpb25jaGFuZ2UpIFwKICAgICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlKSBc
CiAgICAgbWFjcm8od3JpdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggNWRhNTdm
ZmM2Y2Y0MzI2N2E1ZWMzYmUzMzc1OTViNmNmZTU0ZjgyOC4uMjJhYWE3YjA3MGM0YmI0MmIxNDJl
MTFiZGM5YjM3OWI1N2M0NWY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTM5LDYg
KzM5LDcgQEAgU3RvcmFnZUV2ZW50CiBTVkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29u
ZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZlbnQgY29uZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZlbnRz
IGludGVyZmFjZU5hbWU9U1ZHWm9vbUV2ZW50LCBjb25kaXRpb25hbD1TVkcKK0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hhbmdl
RXZlbnQgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogVG91Y2hFdmVudCBjb25kaXRpb25h
bD1UT1VDSF9FVkVOVFMsIHJ1bnRpbWVDb25kaXRpb25hbD10b3VjaEVuYWJsZWQKIERldmljZU1v
dGlvbkV2ZW50IGNvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNmQ5NzJjMzk2ZDc2MzMyZTFhMGIyNjU3MzFh
ZTNkYjhhNDlmMjFlOS4uNzkxYmQ0ZWRhNWNhMzdhZjQ1NzgzNjM0OTc3OTUxMzA3NGMyZDJmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC05LDYgKzksNyBA
QCBFdmVudFNvdXJjZQogRmlsZVJlYWRlciBjb25kaXRpb25hbD1CTE9CCiBGaWxlV3JpdGVyIGNv
bmRpdGlvbmFsPUZJTEVfU1lTVEVNCiBJREJEYXRhYmFzZSBjb25kaXRpb25hbD1JTkRFWEVEX0RB
VEFCQVNFCitJREJPcGVuREJSZXF1ZXN0IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKIElE
QlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVHJhbnNhY3Rpb24gY29u
ZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgY29uZGl0
aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggMzJiMjliNTYzZDZhNTcyMWMxMzUy
YmZkNWE2NDMzOGYxYWI3NTIxNS4uZTE1YjMwZDllNDNmMTU1M2Q0MTVhODI0ZTRhMTU0NThmYzQ2
NDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fkluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgeyB9CisgICAgdmlydHVhbCB2
b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lv
bikgeyB9CiBwcml2YXRlOgogICAgIEluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9
CiB9OwpAQCAtMjM3LDcgKzIzOCw3IEBAIHByaXZhdGU6CiB2b2lkIEV4ZWN1dGFibGVXaXRoRGF0
YWJhc2U6OnN0YXJ0KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJGYWN0b3J5LCBTZWN1
cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewogICAgIFJlZlB0cjxPcGVuRGF0YWJh
c2VDYWxsYmFjaz4gY2FsbGJhY2sgPSBPcGVuRGF0YWJhc2VDYWxsYmFjazo6Y3JlYXRlKHRoaXMp
OwotICAgIGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1lLCBjYWxsYmFjay5nZXQoKSwgc2Vj
dXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKKyAgICBpZGJGYWN0b3J5LT5vcGVuKGRh
dGFiYXNlTmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBjYWxsYmFjay5n
ZXQoKSwgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKIH0KIAogc3RhdGljIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbkZvckRh
dGFiYXNlKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSogaWRiRGF0YWJhc2UsIGNvbnN0IFN0
cmluZyYgb2JqZWN0U3RvcmVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdkMmM5Y2Y5OWMxMjNmMDlhNDQxNDMzZjkwMDgw
MDI0Y2QwOTc4YjEuLjE5M2JmMmI1ZjZjNjY2YzdiZDUwNjJhZDQ0NzQ0MTViZmIzMDQyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAK
QEAgLTEzMCw2ICsxMzAsMTYgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKCkK
ICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJv
eHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNr
cy0+b25CbG9ja2VkKGV4aXN0aW5nVmVyc2lvbik7Cit9CisKK3ZvaWQgSURCQ2FsbGJhY2tzUHJv
eHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblVw
Z3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2Fj
dGlvbiksIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2UpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDRjNzBi
NjY2ZWFjODEzZjliOThlY2Y4NzJlNzhjZDI0ODZkNjdlMWEuLjgyNTc1OGFhZGU5M2Y0MWYyNjI5
MzAzNjhiZDk2NjYwZmU1MmE1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2go
Y29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7CiAgICAgdmly
dHVhbCB2b2lkIG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRf
dCBleGlzdGluZ1ZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50
NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlPik7CiAKIHByaXZhdGU6CiAgICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJ
REJDYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAppbmRleCA5MDFiNTVlNTRmMmFhZmUwNGZmZmMyMmNh
OTZiMzUzMThlZjk0Nzg2Li41NmFmZTVmYjVkMmI2MmZhNDQ0OTk1NDQ2OTMwYTAxZDBiYzk3Nzk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rp
CiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZlcnNpb24oY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CisgICAgQVNTRVJUKG1fd2ViSURCRGF0YWJhc2UpOwogICAgIG1fd2ViSURCRGF0YWJh
c2UtPnNldFZlcnNpb24odmVyc2lvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tz
KSwgZWMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDgxNmZhZjZjNGRlNzBhZTY5MjY5MzBk
MGRlNTBlMGVlMmQxMTc4NWIuLjAxOWU1OWJhMDYxZjBmYjg0ZTNhOTNhYjg5NWZiYTliZWQ1ZDFj
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC00OCw2ICs0OCwxMSBAQCBJREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5Ojp+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSgpCiB7CiB9CiAKK3ZvaWQgSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lv
biwgaW50NjRfdCBuZXdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFu
Z2Uob2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbikK
IHsKICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHJlcXVlc3RlZFZlcnNpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5oCmluZGV4IGFmZmRjZTc3ZDVkOTU4ZGMwMGUwZjZmODBhY2ZmYjgwMTI5NThiM2Iu
Ljk5OTVhYmQyYjZhZDlkMDI0ZTE1MmYxMGQwZWU2MDMxYzg1YzNjNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgK
QEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJh
Y2tzUHJveHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3Ry
aW5nJiByZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdl
KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKIAogcHJpdmF0ZToKICAg
ICBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2VDYWxs
YmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3Rv
cnlCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9y
eUJhY2tlbmRQcm94eS5jcHAKaW5kZXggYzFiZWMxMDc3ZDZiY2Y0ODdlOTk0MWUwZWQyMWM2Y2Jj
NjE4NjAxOS4uYmFiY2JhZTE4NDA5YzVkZDI1OTJjMGRmZDkyMzMyNmZiZjYwZTk0YSAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Omdl
dERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogfQogCiAK
LXZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIGRhdGFEaXIpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3Jp
Z2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpCiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7
CiAgICAgV2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKQEAgLTIxMSw3
ICsyMTEsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcAogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gZ2V0V2ViRnJhbWUoY29udGV4dCk7Ci0gICAgbV93
ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOworICAgIG1fd2ViSURCRmFjdG9yeS0+b3Bl
bihuYW1lLCB2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmln
aW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5
OjpkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3Jp
Z2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmgKaW5kZXggMjJhNmY1MmE4Njk4MTZjODA1NjY4ZDY4NGQwYTdiZmZmYzI2YWU2OS4u
YzBkZTkxMGE5MmNkZWE5MWEzZDNhMWM1MzBhMjgwN2M1YWJmYWE3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94eSgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0g
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsK
KyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lv
biwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDA4M2Ri
Y2NiZTI2NzVmMjA5OWI1MzU1N2Y0MDE2OGUzZTA4M2Q3NjcuLjJjYjkwZWE0NmU2M2FhYTY1Mjgz
OTY1YTFjNGZlZTRjMDk1MjBhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJDYWxsYmFja3NJbXBsKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFj
a3MpCisgICAgLCBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkoZmFsc2UpCiB7CiB9CiAKQEAgLTcy
LDYgKzczLDEwIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1
cnNvciogY3Vyc29yLCBjb25zdCBXZWJJREJLZXkmIGtleSwKIAogdm9pZCBXZWJJREJDYWxsYmFj
a3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogeworICAg
IGlmIChtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkpIHsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHN0YXRpY19j
YXN0PFdlYklEQkRhdGFiYXNlKj4oMCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
bV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFk
b3B0UHRyKHdlYktpdEluc3RhbmNlKSkpOwogfQogCkBAIC0xMDUsNiArMTEwLDE3IEBAIHZvaWQg
V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9j
a2VkKCk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9u
ZyBvbGRWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7
Cit9CisKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9u
ZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFdlYklEQkRhdGFi
YXNlKiBkYXRhYmFzZSkKK3sKKyAgICBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkgPSB0cnVlOwor
ICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih0cmFuc2FjdGlvbikpLCBJREJEYXRhYmFz
ZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4
IDMwZDc0MzZjNmE1OWY0ODk2MjkwNTI2MDJhZjg5Mzg0ODMyYjM5MjguLjMzY2QyMDI5ZmFjZmNk
NTI5NWRkNjY0NGFkMDFjYzdkYjc2OTkwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTUxLDkgKzUxLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYsIGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFy
eUtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lk
IG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZl
cnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZl
cnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKKyAgICBib29s
IG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZmYwZTg5ODY0YjIxYTY0Njg5YjAzMTI2Y2FhZjNmZTU2
NTlmYWYzMS4uMTQ3NTdiYWM2NzBkOWRlNGZhZmE0OWVhYTY4OWVkOWM0ZGFiYmU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGw6On5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKQogewogfQogCit2b2lkIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJz
aW9uLCBsb25nIGxvbmcgbmV3VmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9u
Q2hhbmdlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbikK
IHsKICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGwuaAppbmRleCAyMWMzZGM3YzVhYzRhZDBiZWE4ZGYyOTE2ZWJiM2Y4OGM2N2ZmMDVmLi4xODU3
Y2E2NThkMzBmYzI2MDA1MjFhNmRhZDE5MzEzMTM4NTdjZjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApA
QCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFs
IH5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9uKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lv
bik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcAppbmRleCBiYzZkMDlmYTFmYjk3MGMyOTdlMTc3YTIxNTRlZTcxMDE4
ZmFmZmY3Li45MzQzMjgxY2Y0ZDBhZjE3Y2I2YzMyMjUwODFkZjQwNzFkYWU4NzNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAg
LTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkRhdGFiYXNlSW1wbDo6
V2ViSURCRGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
PiBkYXRhYmFzZUJhY2tlbmQpCiAgICAgOiBtX2RhdGFiYXNlQmFja2VuZChkYXRhYmFzZUJhY2tl
bmQpCisgICAgLCBtX2Nsb3NlUGVuZGluZyhmYWxzZSkKIHsKIH0KIApAQCAtOTQsOCArOTUsMTAg
QEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNsb3NlKCkKIHsKICAgICAvLyBVc2UgdGhlIGNh
bGxiYWNrcyB0aGF0IDo6b3BlbiBnYXZlIHVzIHNvIHRoYXQgdGhlIGJhY2tlbmQgaW4KICAgICAv
LyBtdWx0aS1wcm9jZXNzIGNocm9taXVtIGtub3dzIHdoaWNoIGRhdGFiYXNlIGNvbm5lY3Rpb24g
aXMgY2xvc2luZy4KLSAgICBpZiAoIW1fZGF0YWJhc2VDYWxsYmFja3MpCisgICAgaWYgKCFtX2Rh
dGFiYXNlQ2FsbGJhY2tzKSB7CisgICAgICAgIG1fY2xvc2VQZW5kaW5nID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KICAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2UobV9kYXRhYmFz
ZUNhbGxiYWNrcyk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IDA7CiB9CkBAIC0xMDUsNiAr
MTA4LDggQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4oV2ViSURCRGF0YWJhc2VDYWxs
YmFja3MqIGNhbGxiYWNrcykKICAgICBBU1NFUlQoIW1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAg
IG1fZGF0YWJhc2VDYWxsYmFja3MgPSBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpjcmVhdGUo
YWRvcHRQdHIoY2FsbGJhY2tzKSk7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnJlZ2lzdGVyRnJv
bnRlbmRDYWxsYmFja3MobV9kYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgaWYgKG1fY2xvc2VQZW5k
aW5nKQorICAgICAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNGY4
MjUxODIwYTQ5YmJkZmRlNTJmYWI5MWVmZmE1YWVjMDhiYTQ2ZC4uMTQwOWNiNjVmMDY1ZmIzNWQ0
MDA3MDNmNmM3YmU3MjI0ZGQwMDAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
IG1fZGF0YWJhc2VCYWNrZW5kOwogICAgIFdURjo6UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHk+IG1fZGF0YWJhc2VDYWxsYmFja3M7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZs
YWcgd2hlbiB3ZSBjb25zb2xpZGF0ZSB0d28tcGhhc2Ugb3Blbi4KKyAgICAvLyBodHRwOi8vd2ti
LnVnLzkwNDExCisgICAgYm9vbCBtX2Nsb3NlUGVuZGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFj
dG9yeUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuY3BwCmluZGV4IGQxNGFjNzFlMThjODU5MzE1MmVmZGZkNWM4MzllMDE3MjBlM2ZmZGMuLmFk
NzE0NzZiN2ViYjQ2ODZlYTgyNWI5NjIxOTE2ZTYzYjI5MGFjNzcgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKQEAgLTYzLDE3ICs2Myw5
IEBAIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJh
Y2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+Z2V0
RGF0YWJhc2VOYW1lcyhJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNr
cykpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCi0KLXZvaWQgV2ViSURCRmFjdG9yeUltcGw6
Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywg
Y29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJp
bmcmIGRhdGFEaXIpCi17Ci0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4s
IDAsIGRhdGFEaXIpOwotfQotCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcikKIHsKLSAgICAvLyBGSVhNRTogUGFzcyB2ZXJzaW9uIGFsb25nIHdo
ZW4gV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UKLSAgICAvLyBoYXMgYW4gb3Bl
biBtZXRob2QgdGhhdCBhY2NlcHRzIGl0LgotICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4o
bmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQo
KSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKKyAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5h
bWUsIHZlcnNpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tz
KSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKIHZvaWQgV2ViSURCRmFjdG9yeUlt
cGw6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwg
Y29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmgKaW5kZXggZmE0MzhkNzY0OGUzNDY0YzVhMWNiZDVjY2Y1N2Nm
ZjBlNTZmMzI4NS4uODMzZWViNTkxMjU5Yjg1M2MzMjFmZDExOGYwOTRhNWI4YTdjODg2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00
NSw3ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwog
CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29u
c3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURp
cik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2Vi
U3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2Vi
U3RyaW5nJiBkYXRhRGlyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IDNmYzEwNTMwN2JmNTdlMDU0MTNl
OWQxNzJjMTU1OWM1NDA4YmM3Y2EuLjFkMzk1MDk2YWFkYjNhNWIzZGU5YjcwZGFiNjBmMzE4OWNm
YmE5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRP
bkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTEwMiw3ICsxMDIsOCBAQCBURVNUKElEQkFib3J0VGVz
dCwgVGhlVGVzdCkKICAgICBjb25zdCBTdHJpbmcmIG5hbWUgPSAiZGIgbmFtZSI7CiAgICAgTW9j
a0lEQkNhbGxiYWNrcyBjYWxsYmFja3M7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKCJodHRwIiwgImxvY2FsaG9zdCIsIDgxKTsKLSAg
ICBmYWN0b3J5LT5vcGVuKG5hbWUsICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0
cmluZygpIC8qcGF0aCovKTsKKyAgICBjb25zdCBpbnQ2NF90IER1bW15VmVyc2lvbiA9IDI7Cisg
ICAgZmFjdG9yeS0+b3BlbihuYW1lLCBEdW1teVZlcnNpb24sICZjYWxsYmFja3MsIG9yaWdpbiwg
MCAvKkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5k
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2Vu
ZFRlc3QuY3BwCmluZGV4IDIyNzc4ODc1ZmE5MzQwMjA3ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIu
Ljg2MDVjMGYxYWM2Mjg3ZmZkYzgyODE4ZTVhM2UwNTYzNGE4YjJjODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGYWtl
SURCRGF0YWJhc2VDYWxsYmFja3M+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGYWtl
SURCRGF0YWJhc2VDYWxsYmFja3MoKSk7IH0KICAgICB2aXJ0dWFsIH5GYWtlSURCRGF0YWJhc2VD
YWxsYmFja3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0
cmluZyYgdmVyc2lvbikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNo
YW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9
CiBwcml2YXRlOgogICAgIEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmYjJlZTE1OTFjMGM0ZjMwNDBmOWU3ZDhmMmEzODY0MDRhYTQ5YzU5Li5jZTVkOWFkMDllMGZk
YmVlMmZlNzA3MThhZmEwZTAwN2RlMTczNWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTIt
MDgtMTQgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIElu
ZGV4ZWREQjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZlcnNpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
YmxvY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVu
ZWVkZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmct
cXVldWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA4LTE0ICBBZHJpZW5u
ZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJrIGNz
czIuMS8yMDExMDMyMy9jNTQxLXdvcmQtc3AtMDAwLmh0bSBhcyBmYWlsaW5nIG9uIFdpbmRvd3Mg
Q2hyb21pdW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA5OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1
YTdkODkyYWE2YTYzLi41YTA1OGNmMTI2NTlkY2FhNGJmMTQ1ODhlZTg0NTY5YTZjN2Y1YzVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSw3ICsxMSwxMyBAQCBpbmRleGVkREIub3BlbihkYm5hbWUs
IDIpCiByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKIEZJWE1FOiBUaGlz
IHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCiByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawotRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNh
bGxlZCB1bmV4cGVjdGVkbHkuCisKK3VwZ3JhZGVOZWVkZWQoKToKK1BBU1MgZGIudmVyc2lvbiBp
cyAyCit0cmFuc2FjdGlvbi5hYm9ydCgpCisKK29uQWJvcnQoKToKK0ZBSUwgZXZlbnQudGFyZ2V0
LmRiLnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0
ZWQudHh0CmluZGV4IGYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYuLjA0
ZjI4MWFhZDg0N2U4ODY4NjJmNzM5YWU0Y2ZhMjk0NzI3MjYyZjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0zMywxNyArMzMsNTcgQEAgUEFTUyBkYi52ZXJz
aW9uIGlzICJzb21lIHZlcnNpb24iCiBkYi5jbG9zZSgpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1Mg
U3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIK
K0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0
cmluZykuIFdhcyAwIChvZiB0eXBlIG51bWJlcikuCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMg
MgorcmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQK
KwordHJhbnNhY3Rpb25Db21wbGV0ZWQoKToKK2RpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVl
CisKIGZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Ci1GQUlMIGRpZFRyYW5zYWN0aW9uQ29tcGxldGUg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBp
cyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgU3RyaW5nKGRiKSBpcyAiW29i
amVjdCBJREJEYXRhYmFzZV0iCiBQQVNTIHJlcXVlc3QudHJhbnNhY3Rpb24gaXMgbnVsbAotRkFJ
TCBkYi52ZXJzaW9uIHNob3VsZCBiZSAyIChvZiB0eXBlIG51bWJlcikuIFdhcyBzb21lIHZlcnNp
b24gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2Jq
ZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KK1BBU1MgZGIu
dmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJPcGVuREJS
ZXF1ZXN0XSIKIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzdHJpbmcgdmVyc2lvbiAyIikKIFBB
U1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIK
IHJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkCi1GQUlMIFN1Y2Nlc3MgZnVu
Y3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKworc2V0VmVyc2lvbk5vdEFsbG93ZWQoKToKK1BB
U1MgZXZlbnQudHlwZSBpcyAiZXJyb3IiCityZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9IFlv
dSBjYW4ndCB1c2UgdGhlIHNldFZlcnNpb24gZnVuY3Rpb24gaWYgeW91J3ZlIGFscmVhZHkgc2V0
IHRoZSB2ZXJzaW9uIHRocm91Z2ggYW4gb3BlbiBjYWxsLiAgVGhlIGN1cnJlbnQgaW50ZWdlciB2
ZXJzaW9uIGlzIDIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUs
IDEpCityZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uCisKK2Vycm9y
V2hlblRyeWluZ0xvd1ZlcnNpb24oKToKK3JlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gVGhl
IHJlcXVlc3RlZCB2ZXJzaW9uICgxKSBpcyBsZXNzIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24g
KDIpLgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCkKK3JlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRlZAorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGly
ZE9wZW5TdWNjZXNzCisKK3NlY29uZFVwZ3JhZGVOZWVkZWQoKToKK2dvdFNlY29uZFVwZ3JhZGVO
ZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdW
ZXJzaW9uIGlzIDQKKwordGhpcmRPcGVuU3VjY2VzcygpOgorUEFTUyBnb3RTZWNvbmRVcGdyYWRl
TmVlZGVkIGlzIHRydWUKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9u
IGlzIDQKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNjZXNzCisKK2ZvdXJ0aE9wZW5TdWNjZXNzKCk6
CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyA0CiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IGJhYzNjY2YyYzM0YmZmMDk0OTQzZTYxM2ZhMGRiNjM4N2RmYmEzOTQu
LjAxMzhiNjgxZWFkMTBiYzQ4OTc3MWExNTkwOGU2NGE5MjZlOWJmZDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2Vk
LWV4cGVjdGVkLnR4dApAQCAtMTEsMTUgKzExLDQyIEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCiBkZWxldGVTdWNjZXNzKCk6CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290Rmlyc3RVcGdyYWRl
TmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVu
dC5uZXdWZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5nKGV2ZW50KSBpcyAiW29iamVjdCBJREJVcGdy
YWRlTmVlZGVkRXZlbnRdIgorCiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKLUZBSUwgZ290
Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
Z290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQogY29ubmVjdGlvbjEgPSBldmVudC50
YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdl
SGFuZGxlcgogUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNl
XSIKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCiAKK3ZlcnNpb25DaGFuZ2VI
YW5kbGVyKCk6CitzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50LnR5cGUg
aXMgInZlcnNpb25jaGFuZ2UiCitGQUlMIFN0cmluZyhldmVudCkgc2hvdWxkIGJlIFtvYmplY3Qg
SURCVmVyc2lvbkNoYW5nZUV2ZW50XS4gV2FzIFtvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50
XS4KK1BBU1MgZXZlbnQudGFyZ2V0IGlzIGNvbm5lY3Rpb24xCitQQVNTIGV2ZW50Lm9sZFZlcnNp
b24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDMKKworYmxvY2tlZEV2ZW50SGFuZGxl
cigpOgorUEFTUyBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgaXMgdHJ1ZQorZ290QmxvY2tlZEV2ZW50
ID0gdHJ1ZQorRkFJTCBTdHJpbmcoZXZlbnQpIHNob3VsZCBiZSBbb2JqZWN0IElEQlZlcnNpb25D
aGFuZ2VFdmVudF0uIFdhcyBbb2JqZWN0IElEQlVwZ3JhZGVOZWVkZWRFdmVudF0uCitQQVNTIGV2
ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDMKK1BBU1MgZXZl
bnQudHlwZSBpcyAiYmxvY2tlZCIKK2Nvbm5lY3Rpb24xLmNsb3NlKCkKKworc2Vjb25kVXBncmFk
ZU5lZWRlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBnb3RCbG9ja2VkRXZlbnQgaXMgdHJ1ZQorZ290
U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorCiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2so
KToKLUZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYzA2MDllZTRjMDVhMWU3
ZGExYThlOTFhOWU5YTg4OTMwODgwZGZmMC4uNTUxZjhkODZlYjZlNzc2ZGU2MzE4OGE5YWEwMzEz
NTAwOGVjYjZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTEwLDExICsxMCwyNyBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAogCit1cGdyYWRlTmVl
ZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBp
cyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0c3RvcmUnKQordHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitzZXRUaW1lb3V0KGNsb3NlREIsIDApCisKIG9wZW5T
dWNjZXNzKCk6CiBQQVNTIGRpZENhbGxDbG9zZURCIGlzIGZhbHNlCi1GQUlMIHNhd1RyYW5zYWN0
aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rp
b25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVy
c2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZyku
CitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBp
cyAxCitkYi50cmFuc2FjdGlvbihkYi5vYmplY3RTdG9yZU5hbWVzKQorCitjbG9zZURCKCk6Citk
aWRDYWxsQ2xvc2VEQiA9IHRydWUKK2RiLmNsb3NlKCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21w
bGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTY1ZWRiMjRiZGQ2ZTIxOTczMjUyNGMxMTk1OGJlMjQw
YzkzZjhjYS4uYzNmODA5NmU5ZjRkY2IzNmU0NjUxMjNlODM4NDViZjQ5ZmUyYWQxMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBAIC05LDE0ICs5
LDI0IEBAIGRibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbCIKIGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA3KQogCit1cGdyYWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQor
dHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwordHJhbnNhY3Rpb24ub25j
b21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitkYi5jbG9zZSgpCisKIG9w
ZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywg
J3JlYWR3cml0ZScpCiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgotRkFJTCBjb2RlIHNob3Vs
ZCBiZSAxMS4gV2FzIDguCi1GQUlMIGVuYW1lIHNob3VsZCBiZSBJbnZhbGlkU3RhdGVFcnJvci4g
V2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSCitQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJvcicKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggNjVlZDg1ZDQ4MTlkZDAwYTNl
MGUzNGFjOWM0NGQyOWNjNGRhMWQwYi4uMThmMzNiOGI0NmUyZWI1NDJjY2I5NDgxODkxY2JlYTgz
ZGFlMDMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0CkBAIC0xMCwxMiArMTAsMjIgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCiAKIAordXBncmFkZU5l
ZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24g
aXMgNwordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KK2RiLmNyZWF0ZU9i
amVjdFN0b3JlKCdvcycpCitkYi5jbG9zZSgpCisKK3RyYW5zYWN0aW9uLm9uY29tcGxldGU6Citz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorCiBvcGVuU3VjY2VzcygpOgotRkFJTCBzYXdU
cmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1GQUlM
IGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBz
dHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ29zJykKLUZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24g
OAorRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gMTEK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0CmluZGV4IGVmMTUzZDBkOTRlMjA4YzFm
M2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkuLjUyOGJlNzYxYTI5ZTIwOWEzMDdhNGFjZDM2MzFmMTk0
ODU4YzMwMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKQEAg
LTQ2LDYgKzQ2LDEwIEBAIGNvbm5lY3Rpb24xLmNsb3NlKCkKIAogZGVsZXRlRGF0YWJhc2VTdWNj
ZXNzQ2FsbGJhY2soKToKIAordXBncmFkZU5lZWRlZENhbGxiYWNrKCk6CitQQVNTIGV2ZW50Lm5l
d1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKKwogb3BlbldpdGhWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrKCk6CiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlk
LXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8t
c2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAppbmRleCBlNzRlNWFhN2ZiYWM2OGZhNTFmZGRhNTFh
NTRmZmU1M2Y2YjljYTU4Li5kMjhjYzdmZDAxMTliNjcxMDNiZDM5YzE2MGRjOWM0N2ZkMTM4OGZk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWlu
dmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dApAQCAtMTEsOCArMTEsMTMgQEAgaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNr
KCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVy
c2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorCiBmaXJzdFN1Y2Nlc3NFdmVu
dEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQog
Y29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNpb25j
aGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrCiBQQVNTIFN0cmluZyhjb25u
ZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgpAQCAtMjQsNyArMjksMTMgQEAgcmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24nKQogcmVxdWVzdC5vbmVycm9yID0gc2V0VmVy
c2lvbkVycm9yCiByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2sK
IHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjawotRkFJTCBvbnZl
cnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseQorCitzZXRWZXJzaW9uRXJyb3IoKToKK09w
ZW4gdXAgYSBuZXcgZGIgdG8gZW5zdXJlIHRoYXQgaWYgY29ubmVjdGlvbjEgd2VyZSB0byBnZXQg
YSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCBpdCB3aWxsIGJlIGRlbGl2ZXJlZCBiZWZvcmUgdGhlIHRl
c3QgZmluaXNoZXMKK25ld19kYiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSArICcyJykKK25ld19k
Yi5vbnN1Y2Nlc3MgPSBuZXdEQlN1Y2Nlc3MKKworbmV3REJTdWNjZXNzKCk6CiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5OTIwOWFmNzdkMzFhMmFlZGNiZmE0ZDQzMWI5M2RiMWFlMTEy
ZGQuLmNlZmYwOTVjM2Y2MzkwNzY3OTM2OTRkMTU3ZTZmYTEzMjAxYjM2N2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1s
b25nLXF1ZXVlLWV4cGVjdGVkLnR4dApAQCAtNjUsOCArNjUsMTMgQEAgRkFJTCBldmVudC5vbGRW
ZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVuZGVmaW5lZAogRkFJTCBldmVudC5uZXdW
ZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCiAKK3Vw
Z3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFT
UyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisKIG9w
ZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgotRkFJTCBnb3RVcGdyYWRlTmVlZGVkRXZl
bnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290VXBncmFkZU5lZWRlZEV2ZW50
IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0
aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1v
cGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKaW5kZXggMzM3MGNhZDAwNDcxNmMzZDQ5Yzli
ODViMTVmODZhOWQ5OWNlYWRkYi4uOTA1NDc4ZGRlNDg3MjI4MzJjODEwYzJkNjkzYmQyNjE5MjM4
OWFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAg
LTEzLDE3ICsxMywzMyBAQCBTaG91bGQgdHJpZ2dlcjoKIDQuMS43OiBJZiB0aGUgdmVyc2lvbiBv
ZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmlu
ZyBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9u
LCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLgogNC4xLjk6IFJldHVybiBjb25uZWN0aW9u
LgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKLUZBSUwgU3RyaW5nKHJlcXVl
c3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJS
ZXF1ZXN0XS4KK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVl
c3RdIgogCitQQVNTIEluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoKK1Rlc3QgNC44
LjkuMToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2Jq
ZWN0IElEQkRhdGFiYXNlXSIKK1Rlc3QgNC44LjkuMzoKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBp
cyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNworUEFTUyBldmVudC50YXJnZXQucmVhZHlT
dGF0ZSBpcyAiZG9uZSIKK1Rlc3QgNC4xLjQ6CitQQVNTIGRiLm5hbWUgaXMgZGJuYW1lCitQQVNT
IGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCit0
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorUEFTUyBTdHJpbmcodHJhbnNh
Y3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIKK29zID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInNvbWVPUyIpCitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQogCiBvcGVuU3Vj
Y2VzcygpOgogVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2Fz
IHJ1bi4KLUZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgot
RkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQ
QVNTIHNhd1VwZ3JhZGVOZWVkZWQgaXMgdHJ1ZQorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogS2luZCBvZiB0ZXN0IDQuMS45Ogog
UEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKLUZBSUwgZGIudmVyc2lv
biBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQ
QVNTIGRiLnZlcnNpb24gaXMgNwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158467</attachid>
            <date>2012-08-14 18:11:02 -0700</date>
            <delta_ts>2012-08-15 18:45:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120814181029.patch</filename>
            <type>text/plain</type>
            <size>86643</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRmNmRmM2NkNGZiZmFi
NjUxODkzMzIzNWQyZTZhMGI2MzE2MjU4OC4uMGVlMTEwNDUwNDhkMjA2MzBhZWNlN2RkOGFjOGRm
ODFkMTBkNTYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgV2Ug
bm93IHRha2UgYSBwb2ludGVyIHRvIHRoZSBvcGVuREJSZXF1ZXN0IGlmIHRoaXMgaXMgYSB2ZXJz
aW9uCisgICAgICAgIGNoYW5nZSB0cmFuc2FjdGlvbiBhcyBhIHJlc3VsdCBvZiBhbiBvcGVuLXdp
dGgtdmVyc2lvbiBjYWxsIHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGNsZWFyIHRoZSB0cmFuc2Fj
dGlvbiBwcm9wZXJ0eSBvbiB0aGUgb3BlbkRCUmVxdWVzdCBhcyBzb29uIGFzIHRoZQorICAgICAg
ICB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIGRpc3BhdGNoZWQgcGVyIHRoZSBzcGVjICgiLi4uIHNl
dCByZXF1ZXN0J3MKKyAgICAgICAgdHJhbnNhY3Rpb24gcHJvcGVydHkgdG8gbnVsbC4uLiAiLCBj
dXJyZW50bHkgNC44LjEyKS4KKworICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6fklEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0xNCAgTWlraGFpbCBQb3pkbnlh
a292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBXZWJLaXRUZXN0
UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjhiZTRiYjMwZmE2MzY1ZmM1NjFkOTg4
YmNkZmZiYWFjNzQ3MTY1ZS4uYWQ4MTBhMzllMmNhNjJiODM0MTUxMzI5MzNmOWUxMjQ2NmYwMzhm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAxMi0wOC0x
NCAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhl
ZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2Vk
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5
OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5oOgor
ICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQmFja2VuZFByb3h5
OjpzZXRWZXJzaW9uKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lv
bkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KToKKyAg
ICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OklEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFByb3h5KToKKyAgICAg
ICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUpOgorICAgICAgICAq
IHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2Fs
bGJhY2tzSW1wbDo6V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgIFdlIGRvbid0IHdhbnQgdG8gY3Jl
YXRlIElEQkRhdGFiYXNlQmFja2VuZFByb3h5IGFnYWluIGlmIHdlJ3ZlIGFscmVhZHkKKyAgICAg
ICAgY3JlYXRlZCBpdCBkdXJpbmcgdXBncmFkZU5lZWRlZC4gIFRoaXMgbWFrZXMKKyAgICAgICAg
SURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZCkgcmV1c2UgaXRzIHByZXZp
b3VzCisgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSBpZiBpdCBoYXMgb25lLgor
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvblVw
Z3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmg6CisgICAg
ICAgIChXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJE
YXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICog
c3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRmFjdG9y
eUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5oOgorICAgICAg
ICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJUcmFuc2FjdGlvbkNhbGxi
YWNrc0ltcGw6Om9uQ29tcGxldGUpOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0T25Db3JydXB0
VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9JREJE
YXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMi0wOC0xNCAgSWFpbiBNZXJyaWNrICA8aHVz
a3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgdGVzdCB0byBXZWJG
cmFtZVRlc3QgZm9yIHNlbGVjdFJhbmdlIGFuZCB2aXNpYmxlUG9zaXRpb25Gb3JXaW5kb3dQb2lu
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cAppbmRleCA1YzNkZmNiNmI1NDJjMWJlMDZiMjQxYjQ3Y2U5YmFjYjliNjYyOWI0Li4yYTM5Y2Fi
ZmIzOTRkNmM2ZTJiODM5YmM3YzEyODg2ODgzNjVjZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5j
bHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQu
aCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJz
aW9uQ2hhbmdlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
QEAgLTIwOCw2ICsyMDksNyBAQCBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBJ
REJEYXRhYmFzZTo6c2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIH0KIAogICAg
IFJlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gcmVxdWVzdCA9IElEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIHZlcnNpb24p
OworICAgIEFTU0VSVChtX2JhY2tlbmQpOwogICAgIG1fYmFja2VuZC0+c2V0VmVyc2lvbih2ZXJz
aW9uLCByZXF1ZXN0LCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBlYyk7CiAgICAgcmV0dXJuIHJlcXVl
c3Q7CiB9CkBAIC0zMDEsNiArMzAzLDE3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlQ29ubmVj
dGlvbigpCiAgICAgfQogfQogCit2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgaWYgKG1fY29udGV4
dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBlbnF1ZXVl
RXZlbnQoSURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbmV3VmVyc2lv
biwgZXZlbnROYW1lcygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOworfQorCiB2b2lkIElEQkRhdGFi
YXNlOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIGlmICht
X2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCkBAIC0zMTQsNiAr
MzI3LDcgQEAgdm9pZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZTo6cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygp
CiB7CisgICAgQVNTRVJUKG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5yZWdpc3RlckZyb250
ZW5kQ2FsbGJhY2tzKG1fZGF0YWJhc2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMyNmE1ODgzZGNm
Mzk0NzNjYWExMDk3MjkwNWYzZmU2NzVlLi5hN2Q3MmNlMTk4ZjNlMGZkYWFkMGNhM2YzMGY4NmM0
ZWYzN2E3MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIodmVyc2lvbmNoYW5nZSk7CiAKICAgICAvLyBJREJEYXRhYmFzZUNhbGxi
YWNrcworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9u
LCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVj
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhMzEyNTFjOGQ2Mzc4NTBjZjg3YWQ4Y2E0YzJl
OWVlMWE1YTI4ZWIwLi5mOWIxYWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNDQ0LDEwICs0NDQsNiBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3
b24ndCBiZSByZWFjaGVkIHVudGlsIGl0J3MgZXhwb3NlZCB0byBzY3JpcHQgaW4KLSAgICAvLyB3
YmsudWcvOTI4OTcuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KICAgICBSZWZQdHI8SURC
Q2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CiAgICAgQVNTRVJUKGNhbGxiYWNr
cyk7CiAgICAgZm9yIChEYXRhYmFzZUNhbGxiYWNrc1NldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VDYWxsYmFja3NT
ZXQuZW5kKCk7ICsraXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDE2YTllYTZjNTA4YjBkOTJiNjFl
NDk5N2M1NDMwMTMyYTZkMmFjYWEuLmZhYTE2NmY3ZjUxMWZmNjY2NmYzOTczZGJiODQwNGI3Zjli
NTIzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25W
ZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApp
bmRleCAxOTQxMmZjYmU1MGFiNDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmLi5jZWI3YWYzMWYz
ZTIyNDg2MWUwNTA3NjIxMGZhZmM1YTA1OGRmMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHAKQEAgLTUyLDYgKzUyLDEyIEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZl
cnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogICAgICAgICBtX2RhdGFiYXNlLT5v
blZlcnNpb25DaGFuZ2UodmVyc2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsOjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNp
b24pCit7CisgICAgaWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uVmVyc2lv
bkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGw6OnVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IGU4YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2Rm
YjgyYmU3ZmIuLjAyYzhkZTBkZmU5ZjZlZmRlZDY4MDViN2JhYzkyMTc4ZmI4MDg4ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNp
b25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBjZjUy
Y2MxZmUyYjEzNTViNmM1NGVkY2UyNjVlMGYzZThjM2E1ZTkxLi5jODNiYTM2NDVkYmY2ZDM5ODNj
OWNjYTdkN2IzN2FiMTUwNzcyYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIklEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAi
SURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3Bl
bkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMTA1LDcgKzEwNSw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1Jl
ZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSkgewogICAgICAgICBlYyA9
IE5BVElWRV9UWVBFX0VSUjsKQEAgLTExNCwxMSArMTE0LDE2IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTCiAgICAgaWYgKCFpc0NvbnRleHRWYWxpZChjb250ZXh0KSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAgbV9iYWNrZW5kLT5vcGVu
KG5hbWUsIHJlcXVlc3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldElu
ZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IHJlcXVlc3QgPSBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55Ojpj
cmVhdGUodGhpcyksIHZlcnNpb24pOworICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9u
LCByZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVk
REJEYXRhYmFzZVBhdGgoY29udGV4dCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitQYXNz
UmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICByZXR1cm4gb3Blbihjb250ZXh0LCBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpO
b0ludFZlcnNpb24sIGVjKTsKK30KKwogUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
bmFtZS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5oCmluZGV4IDQ2MTFjYjZjNGZlODM5OTBiNDcyNGE0M2JmMDljOWE1YTk1ZDg4OGQu
LjM2NDViYjgxZGM3ZWU5NjY5MDVkYTY1MmMwNjRkYTczODZmNjUzZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTMwLDcgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01OCw3ICs1OCw4
IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VOYW1l
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIHNob3J0IGNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQ
dHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggMDM4OWViMmFhZTdlMTI5OTU0
ZDlhY2YwM2E1OWZmYmNjN2ZiYWFjYy4uYmY3MWEyZGQyNWQxZmY5NWUyNjQzNWY0ZTQxZjBjNDFi
OTc2NzJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwKQEAgLTMwLDcgKzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIF0gSURCRmFj
dG9yeSB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1l
bnRlZEFzPWdldERhdGFiYXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1l
cygpOwogCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUsIGlu
IFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGluIERP
TVN0cmluZyBuYW1lKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmNwcAppbmRleCA2M2JkNDc4M2U1NGFlMzFmNGQ0OTU5NmYzYjYwZDlh
ZjgyNTRjOWRjLi44ZGE1YzAyZTQyM2Y2ZjY0ZTU3OTczMGRiNzNmYTI5ZWMyYmU0NjA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW1wbC5jcHAKQEAgLTE1MCwxMCArMTUwLDggQEAgUGFzc1JlZlB0cjxJREJCYWNr
aW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVm
UHRyPFMKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURCRmFj
dG9yeUJhY2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKIHsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEgcGFy
YW1ldGVyIGFuZCBwbHVtYiB0aHJvdWdoIGZyb20gamF2YXNjcmlwdC4KLSAgICBpbnQ2NF90IHZl
cnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CiAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNv
bnN0IFN0cmluZyB1bmlxdWVJZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFt
ZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IGNhMWQwNTI4
MmE4YzVlZGY3NjZkNWU1NTUwOGZhZTBhOWMwNDhjNjUuLmNhZDNiNWEyNGIyOTlhOTI5OWMyYWQy
OTRlM2IyZWEwNGNmZDcyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmlu
ZyYgZmlsZUlkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVh
bCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYyMWVh
NDcxOWY2MzY5NDI5Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0NGVh
NDhhY2Y2NjZmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0
X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM0NjZhMjYzMmY3YzczODJjNGFmM2RiN2YwY2RiYThmMGI1
YjExZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJ
REJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVx
dWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKK3sKKyAgICBSZWZQdHI8SURCT3BlbkRC
UmVxdWVzdD4gcmVxdWVzdChhZG9wdFJlZihuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBz
b3VyY2UsIHZlcnNpb24pKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAg
cmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCitJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVu
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
QW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbikKKyAgICA6IElEQlJlcXVlc3QoY29udGV4dCwg
c291cmNlLCAwKQorICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCit7CisgICAgQVNTRVJUKCFtX3Jl
c3VsdCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KCkKK3sKK30K
KworY29uc3QgQXRvbWljU3RyaW5nJiBJREJPcGVuREJSZXF1ZXN0OjppbnRlcmZhY2VOYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQk9wZW5EQlJl
cXVlc3Q7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qgb2xk
VmVyc2lvbikKK3sKKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQorICAgICAgICByZXR1
cm47CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZl
cnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkpOworfQorCit2b2lk
IElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBUcmFuc2FjdGlvbkJh
Y2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBwcnBEYXRhYmFz
ZUJhY2tlbmQpCit7CisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VC
YWNrZW5kID0gcHJwRGF0YWJhc2VCYWNrZW5kOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHBycFRyYW5zYWN0aW9uQmFja2Vu
ZDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCk7CisKKyAgICBS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9uQmFja2VuZCwgSURCVHJhbnNhY3Rp
b246OlZFUlNJT05fQ0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CisgICAgdHJhbnNh
Y3Rpb25CYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOworICAgIG1fdHJhbnNh
Y3Rpb24gPSBmcm9udGVuZDsKKyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFi
YXNlLnJlbGVhc2UoKSk7CisKKyAgICBpZiAob2xkVmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFk
YXRhOjpOb0ludFZlcnNpb24pIHsKKyAgICAgIC8vIFRoaXMgZGF0YWJhc2UgaGFzbid0IGhhZCBh
biBpbnRlZ2VyIHZlcnNpb24gYmVmb3JlLgorICAgICAgb2xkVmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIH0KKyAgICBlbnF1ZXVlRXZlbnQoSURC
VXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5h
bWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7Cit9CisKK2Jvb2wgSURCT3BlbkRCUmVxdWVzdDo6
c2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8
fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
QVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsK
KyAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjM4ZjYzMTU3NWFhYzg4NTFkODA1NjM1YjhlNTQ0MGYwZWRlMjhiMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJPcGVuREJSZXF1
ZXN0X2gKKyNkZWZpbmUgSURCT3BlbkRCUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJREJPcGVuREJSZXF1ZXN0IDogcHVibGljIElEQlJlcXVlc3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJz
aW9uKTsKKyAgICB2aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihibG9ja2VkKTsKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKHVwZ3JhZGVuZWVkZWQpOworCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0IE9WRVJSSURFOworCitwcml2YXRl
OgorICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbik7CisKKyAgICBpbnQ2NF90IG1fdmVy
c2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCT3BlbkRCUmVxdWVzdF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFlNDZhNTJlMTUwNGYxZjUzYjQ4NGI1YzNkYzY2ODJiMTE5MzFjMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2Ugewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgICAgICBFdmVudFRhcmdldAorICAgIF0gSURC
T3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3QgeworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udXBncmFk
ZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAppbmRleCBmMDg4NmM2NmNiMWRmY2RjZjA0YzEwM2ZlYTFkNThjMzA1
OGU5MjRhLi5hZDZhMjcxNWFhNTRkMDY3N2RlNmE2ZTk0ODY2ODRkYjZmYjFkNzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNTMs
MTUgKzUzLDE3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSCiAKIElEQlJlcXVlc3Q6OklEQlJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+
IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jlc3VsdCgwKQogICAgICwgbV9lcnJvckNvZGUo
MCkKLSAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2Up
CiAgICAgLCBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICwgbV9yZWFkeVN0YXRlKFBF
TkRJTkcpCiAgICAgLCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNlKQotICAgICwgbV9jb250ZXh0U3Rv
cHBlZChmYWxzZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fY3Vyc29yVHlwZShJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKICAgICAsIG1fY3Vy
c29yRGlyZWN0aW9uKElEQkN1cnNvcjo6TkVYVCkKICAgICAsIG1fcGVuZGluZ0N1cnNvcigwKQor
ICAgICwgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2ZW50KGZhbHNlKQogewogICAgIGlmIChtX3Ry
YW5zYWN0aW9uKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlz
KTsKQEAgLTI3NywxMCArMjc5LDE1IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIGlmICghc2hv
dWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJREJEYXRh
YmFzZT4gaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgYmFja2VuZCk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZTsK
KyAgICBpZiAobV9yZXN1bHQpIHsKKyAgICAgICAgaWRiRGF0YWJhc2UgPSBtX3Jlc3VsdC0+aWRi
RGF0YWJhc2UoKTsKKyAgICAgICAgQVNTRVJUKGlkYkRhdGFiYXNlKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBiYWNrZW5kKTsKKyAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShp
ZGJEYXRhYmFzZS5nZXQoKSk7CisgICAgfQogICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250
ZW5kQ2FsbGJhY2tzKCk7Ci0KLSAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFi
YXNlLnJlbGVhc2UoKSk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsK
IH0KIApAQCAtNDI2LDggKzQzMyw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBBU1NFUlQobV9lbnF1ZXVlZEV2ZW50cy5zaXpl
KCkpOwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChl
dmVudC0+dGFyZ2V0KCkgPT0gdGhpcyk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5
U3RhdGUgPCBET05FLCAibV9yZWFkeVN0YXRlIDwgRE9ORSglZCksIHdhcyAlZCIsIERPTkUsIG1f
cmVhZHlTdGF0ZSk7Ci0KKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERP
TkUsICJXaGVuIGRpc3BhdGNoaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgPCBET05FKCVkKSwg
d2FzICVkIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBET05FLCBtX3Jl
YWR5U3RhdGUpOwogICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5ibG9ja2Vk
RXZlbnQpCiAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiAKQEAgLTQ1NiwxMSArNDYyLDEy
IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCkKICAgICB9CiAKICAgICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlz
cGF0Y2hpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4KLSAgICBBU1NFUlQo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuYmxvY2tlZEV2ZW50KTsKLSAgICBjb25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZl
ID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vz
c0V2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1f
ZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CisgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNz
RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBl
dmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGNvbnN0IGJvb2wgc2V0
VHJhbnNhY3Rpb25BY3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
dXBncmFkZW5lZWRlZEV2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50ICYmIG1fZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRf
RVJSKSk7CiAKICAgICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPnNldEFjdGl2ZSh0cnVlKTsKKwogICAgIGJvb2wgZG9udFByZXZlbnREZWZhdWx0ID0g
SURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CiAgICAg
aWYgKHNldFRyYW5zYWN0aW9uQWN0aXZlKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3Rp
dmUoZmFsc2UpOwpAQCAtNDY4LDYgKzQ3NSwxMSBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90aWZ5KQog
ICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKIAor
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQp
IHsKKyAgICAgICAgQVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAg
ICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIGlmICht
X3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJvcnRlZCkg
ewogICAgICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CkBAIC00OTQs
NiArNTA2LDE2IEBAIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFu
ZGxlcigpCiAgICAgfQogfQogCit2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRGlzcGF0
Y2hDb21wbGV0ZU9yQWJvcnQoKQoreworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uKTsKKyAgICBB
U1NFUlQobV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7
Cit9CisKIHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogewogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3Rh
dGUgPT0gRE9ORSk7CkBAIC01MDEsNyArNTIzLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVl
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQg
fHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1f
cmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCwgIldo
ZW4gcXVldWVpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcmVhZHlTdGF0ZSk7CiAKICAgICBFdmVudFF1ZXVl
KiBldmVudFF1ZXVlID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudFF1ZXVlKCk7CiAg
ICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBkODFjM2Y3ODRhY2E0ZjYyZGRhM2U4NTJmNGE1OTQz
NDlkMDkzYjU1Li42NjdhMTU5ZGYyYzYyYTQ4MzRmNGUyMDc2MDEwOGY3ZDA1MmJmNDNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC05MCw2
ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRj
aChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURC
S2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hv
dWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lv
bikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAg
ICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwpAQCAt
MTAyLDE4ICsxMDMsMjQgQEAgcHVibGljOgogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIEV2ZW50VGFyZ2V0
OjpkaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5jYXVnaHRF
eGNlcHRpb25JbkV2ZW50SGFuZGxlcigpOwogCisgICAgdm9pZCB0cmFuc2FjdGlvbkRpZERpc3Bh
dGNoQ29tcGxldGVPckFib3J0KCk7CisKICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJ
REJDYWxsYmFja3M+OjpyZWY7CiAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ2Fs
bGJhY2tzPjo6ZGVyZWY7CiAKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJUcmFuc2FjdGlvbiop
OwogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKLSAgICBib29sIHNo
b3VsZEVucXVldWVFdmVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbnF1ZXVl
RXZlbnQoKSBjb25zdDsKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fcmVzdWx0OwogICAgIHVuc2ln
bmVkIHNob3J0IG1fZXJyb3JDb2RlOwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBS
ZWZQdHI8RE9NRXJyb3I+IG1fZXJyb3I7CisgICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOworICAg
IFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKKyAgICBSZWFkeVN0YXRlIG1f
cmVhZHlTdGF0ZTsKKyAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVk
IGJ5IHRyYW5zYWN0aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4g
YXNzZXJ0LgogCiBwcml2YXRlOgogICAgIC8vIEV2ZW50VGFyZ2V0CkBAIC0xMjYsMTEgKzEzMyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJz
b3I+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogCiAgICAgUmVmUHRyPElEQkFueT4g
bV9zb3VyY2U7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogCi0g
ICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7Ci0gICAgYm9vbCBtX3JlcXVlc3RBYm9ydGVkOyAv
LyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVuIHJlY2VpdmUgYXN5bmMgb25zdWNj
ZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KLSAgICBib29sIG1fY29udGV4dFN0b3BwZWQ7CiAgICAg
VmVjdG9yPFJlZlB0cjxFdmVudD4gPiBtX2VucXVldWVkRXZlbnRzOwogCiAgICAgLy8gT25seSB1
c2VkIGlmIHRoZSByZXN1bHQgdHlwZSB3aWxsIGJlIGEgY3Vyc29yLgpAQCAtMTQwLDYgKzE0Myw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQktleT4gbV9jdXJzb3JLZXk7CiAgICAgUmVmUHRy
PElEQktleT4gbV9jdXJzb3JQcmltYXJ5S2V5OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1fY3Vyc29yVmFsdWU7CisgICAgYm9vbCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZl
bnQ7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmlu
ZGV4IDc2MTIzNDcwMTQxODNjOWRhNjFlOGRiYWZlNjVmYTM4NTk5OTM0N2UuLjU3NGYyNTY1YzQx
NmI0ZGU0MzJmMDc2NTg5ZjgxYmJhYTZmNjY1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5j
bHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSURCT3Bl
bkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIK
ICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAKQEAgLTQzLDcgKzQ0LDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9k
ZSwgSURCRGF0YWJhc2UqIGRiKQogewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNh
Y3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUs
IGRiKSkpOworICAgIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QgPSAwOworICAgIHJl
dHVybiBjcmVhdGUoY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIsIG9wZW5EQlJlcXVlc3QpOwor
fQorCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJE
YXRhYmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QpCit7CisgICAgUmVm
UHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rp
b24oY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIsIG9wZW5EQlJlcXVlc3QpKSk7CiAgICAgdHJh
bnNhY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxl
YXNlKCk7CiB9CkBAIC03OSwxMCArODYsMTEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFu
c2FjdGlvbjo6bW9kZVJlYWRXcml0ZUxlZ2FjeSgpCiB9CiAKIAotSURCVHJhbnNhY3Rpb246OklE
QlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6
TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIpCitJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUs
IElEQkRhdGFiYXNlKiBkYiwgSURCT3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCkKICAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9iYWNrZW5kKGJhY2tlbmQp
CiAgICAgLCBtX2RhdGFiYXNlKGRiKQorICAgICwgbV9vcGVuREJSZXF1ZXN0KG9wZW5EQlJlcXVl
c3QpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fYWN0aXZlKHRydWUpCiAgICAgLCBtX3N0
YXRlKFVudXNlZCkKQEAgLTE4Miw3ICsxOTAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpvYmpl
Y3RTdG9yZURlbGV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQogCiB2b2lkIElEQlRyYW5zYWN0aW9u
OjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiB7Ci0gICAgQVNTRVJUKG1fc3RhdGUgIT0gRmluaXNo
ZWQpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9zdGF0ZSAhPSBGaW5pc2hlZCwgIkEgZmlu
aXNoZWQgdHJhbnNhY3Rpb24gdHJpZWQgdG8gc2V0QWN0aXZlKCVzKSBpbiAlcCIsIGFjdGl2ZSA/
ICJ0cnVlIiA6ICJmYWxzZSIsIHRoaXMpOwogICAgIGlmIChtX3N0YXRlID09IEZpbmlzaGluZykK
ICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChtX3N0YXRlID09IFVudXNlZCB8fCBtX3N0YXRl
ID09IFVzZWQpOwpAQCAtMzc1LDcgKzM4MywxMiBAQCBib29sIElEQlRyYW5zYWN0aW9uOjpkaXNw
YXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogCiAgICAgLy8gRklYTUU6IFdoZW4g
d2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVl
ZCB0byBjaGFuZ2UuCiAgICAgQVNTRVJUKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNv
bXBsZXRlRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7
Ci0gICAgcmV0dXJuIElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0KCksIHRh
cmdldHMpOworICAgIGJvb2wgcmV0dXJuVmFsdWUgPSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3Bh
dGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKKyAgICAvLyBGSVhNRTogVHJ5IHRvIGNvbnN0cnVj
dCBhIHRlc3Qgd2hlcmUgfHRoaXN8IG91dGxpdmVzIG9wZW5EQlJlcXVlc3QgYW5kIHdlCisgICAg
Ly8gZ2V0IGEgY3Jhc2guCisgICAgaWYgKG1fb3BlbkRCUmVxdWVzdCkKKyAgICAgICAgbV9vcGVu
REJSZXF1ZXN0LT50cmFuc2FjdGlvbkRpZERpc3BhdGNoQ29tcGxldGVPckFib3J0KCk7CisgICAg
cmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBib29sIElEQlRyYW5zYWN0aW9uOjpjYW5TdXNwZW5k
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oCmluZGV4IDFmN2FmN2RhZDFiZTk0OGY2YjQxOTU3Zjc5ZTVmNjg3NDJiOTlhZjAu
LjAwNWUzNzM2MzBhNGQyZmYyZWJhZmQ4MWVlMzZlYTBjOTg5YTkyMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNDYsNiAr
NDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJDdXJzb3I7CiBjbGFzcyBJREJE
YXRhYmFzZTsKIGNsYXNzIElEQk9iamVjdFN0b3JlOworY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsK
IAogY2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25DYWxsYmFja3Ms
IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBA
IC01Niw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFzZSopOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwg
TW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1ZXN0Kik7CiAgICAgdmlydHVhbCB+SURC
VHJhbnNhY3Rpb24oKTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1vZGVSZWFk
T25seSgpOwpAQCAtMTE5LDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVk
PElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKIHByaXZhdGU6Ci0gICAgSURCVHJh
bnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqKTsKKyAgICBJREJUcmFuc2Fj
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFzZSosIElEQk9wZW5EQlJlcXVlc3QqKTsK
IAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lkIGNs
b3NlT3BlbkN1cnNvcnMoKTsKQEAgLTE0Miw2ICsxNDQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0
cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICBJREJPcGVuREJSZXF1ZXN0KiBtX29wZW5E
QlJlcXVlc3Q7CiAgICAgY29uc3QgTW9kZSBtX21vZGU7CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAg
ICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0MjAyODBl
NDY0MGMyMTRjZTExYjE1OWIyMGE1ZmI3OGYzNzkyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJV
cGdyYWRlTmVlZGVkRXZlbnQuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkFueS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCVXBncmFkZU5lZWRlZEV2ZW50PiBJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6OmNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lv
biwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJREJVcGdyYWRlTmVlZGVkRXZlbnQob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnRU
eXBlKSk7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBncmFkZU5lZWRlZEV2ZW50
KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSkKKyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgZmFsc2UgLypjYW5CdWJibGUq
LywgZmFsc2UgLypjYW5jZWxhYmxlKi8pCisgICAgLCBtX29sZFZlcnNpb24ob2xkVmVyc2lvbikK
KyAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9uKQoreworfQorCitJREJVcGdyYWRlTmVlZGVk
RXZlbnQ6On5JREJVcGdyYWRlTmVlZGVkRXZlbnQoKQoreworfQorCitpbnQ2NF90IElEQlVwZ3Jh
ZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbigpCit7CisgICAgcmV0dXJuIG1fb2xkVmVyc2lvbjsK
K30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om5ld1ZlcnNpb24oKQoreworICAg
IHJldHVybiBtX25ld1ZlcnNpb247Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgSURCVXBncmFk
ZU5lZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmludGVyZmFjZUZvcklEQlVwZ3JhZGVOZWVkZWRFdmVudDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc4NTY2
NGYwMzg5YTFiMDQ1N2M4OWVjMzQxZmIwZWU5ZGYwZjRiMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisj
ZGVmaW5lIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElE
QkFueTsKKworY2xhc3MgSURCVXBncmFkZU5lZWRlZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJVcGdyYWRlTmVlZGVkRXZlbnQ+IGNyZWF0
ZShpbnQ2NF90IG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24s
IGludDY0X3QgbmV3VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBBdG9taWNTdHJpbmcoKSk7CisgICAgdmly
dHVhbCB+SURCVXBncmFkZU5lZWRlZEV2ZW50KCk7CisKKyAgICB2aXJ0dWFsIGludDY0X3Qgb2xk
VmVyc2lvbigpOworICAgIHZpcnR1YWwgaW50NjRfdCBuZXdWZXJzaW9uKCk7CisKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCitwcml2YXRl
OgorICAgIElEQlVwZ3JhZGVOZWVkZWRFdmVudChpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3Qg
bmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOworCisgICAgaW50NjRf
dCBtX29sZFZlcnNpb247CisgICAgaW50NjRfdCBtX25ld1ZlcnNpb247Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
I2VuZGlmIC8vIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YjQ2NmJkYzQ5MGVhYjAzMWIwNjBkYjQ2ZjU1ODc1NDFlNjBhMmQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5l
ZWRlZEV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2Ugewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQor
ICAgIF0gSURCVXBncmFkZU5lZWRlZEV2ZW50IDogRXZlbnQgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb247CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgbmV3VmVyc2lvbjsKKyAgICB9OworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDExODg3NzNlOTkzM2M0NWZiN2QyN2U5NGNjN2E1ZGIyMDY5Y2RjOTYu
LmNiZjQxYTgzMzYzMDA1MjY5NGM4MmE1NTk2MzhjMGJjNjc1ZmMyNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTgyMSw4ICs4MjEsMTAgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5p
ZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCcs
CisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwnLAorICAgICAgICAgICAg
J01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmlkbCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFz
ZS5pZGwnLApAQCAtMTUxNCw2ICsxNTE2LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAnLAorICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAnLApA
QCAtMTUyNyw2ICsxNTMxLDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKKyAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAppbmRleCA2ZDBhMTA1NzM4ZGE5ZTgwYTVhODMzOTcwN2I0MzFhZDkwMjNk
YTMyLi5hMmZhZWMxMjgzNGJiYTg0ODhjNzRmZmYzZGFkODUxNTgwZjYwOTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8odGV4dElucHV0KSBcCiAgICAgbWFjcm8odW5sb2FkKSBcCiAgICAgbWFjcm8odXBk
YXRlcmVhZHkpIFwKKyAgICBtYWNybyh1cGdyYWRlbmVlZGVkKSBcCiAgICAgbWFjcm8odmVyc2lv
bmNoYW5nZSkgXAogICAgIG1hY3JvKHdlYmtpdHZpc2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNy
byh3cml0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCA1ZGE1N2ZmYzZjZjQzMjY3
YTVlYzNiZTMzNzU5NWI2Y2ZlNTRmODI4Li4yMmFhYTdiMDcwYzRiYjQyYjE0MmUxMWJkYzliMzc5
YjU3YzQ1ZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMzksNiArMzksNyBAQCBT
dG9yYWdlRXZlbnQKIFNWR0V2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50LCBjb25kaXRpb25hbD1T
VkcKIFNWR1pvb21FdmVudCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21FdmVudHMgaW50ZXJmYWNl
TmFtZT1TVkdab29tRXZlbnQsIGNvbmRpdGlvbmFsPVNWRworSURCVXBncmFkZU5lZWRlZEV2ZW50
IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKIElEQlZlcnNpb25DaGFuZ2VFdmVudCBjb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBUb3VjaEV2ZW50IGNvbmRpdGlvbmFsPVRPVUNIX0VW
RU5UUywgcnVudGltZUNvbmRpdGlvbmFsPXRvdWNoRW5hYmxlZAogRGV2aWNlTW90aW9uRXZlbnQg
Y29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgppbmRleCA2ZDk3MmMzOTZkNzYzMzJlMWEwYjI2NTczMWFlM2RiOGE0OWYy
MWU5Li43OTFiZDRlZGE1Y2EzN2FmNDU3ODM2MzQ5Nzc5NTEzMDc0YzJkMmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTksNiArOSw3IEBAIEV2ZW50U291
cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVXcml0ZXIgY29uZGl0aW9uYWw9
RklMRV9TWVNURU0KIElEQkRhdGFiYXNlIGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKK0lE
Qk9wZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCUmVxdWVzdCBj
b25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJUcmFuc2FjdGlvbiBjb25kaXRpb25hbD1J
TkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBjb25kaXRpb25hbD1JTkRF
WEVEX0RBVEFCQVNFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcAppbmRleCAzMmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1YTY0MzM4
ZjFhYjc1MjE1Li5lMTViMzBkOWU0M2YxNTUzZDQxNWE4MjRlNGExNTQ1OGZjNDY0MjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9y
SURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSB7IH0KIHBy
aXZhdGU6CiAgICAgSW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CkBAIC0y
MzcsNyArMjM4LDcgQEAgcHJpdmF0ZToKIHZvaWQgRXhlY3V0YWJsZVdpdGhEYXRhYmFzZTo6c3Rh
cnQoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZhY3RvcnksIFNlY3VyaXR5T3JpZ2lu
KiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUpCiB7CiAgICAgUmVmUHRyPE9wZW5EYXRhYmFzZUNhbGxiYWNr
PiBjYWxsYmFjayA9IE9wZW5EYXRhYmFzZUNhbGxiYWNrOjpjcmVhdGUodGhpcyk7Ci0gICAgaWRi
RmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUsIGNhbGxiYWNrLmdldCgpLCBzZWN1cml0eU9yaWdp
biwgY29udGV4dCwgU3RyaW5nKCkpOworICAgIGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1l
LCBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGNhbGxiYWNrLmdldCgpLCBzZWN1
cml0eU9yaWdpbiwgY29udGV4dCwgU3RyaW5nKCkpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uRm9yRGF0YWJhc2UoSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKiBpZGJEYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RTdG9yZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5jcHAKaW5kZXggN2QyYzljZjk5YzEyM2YwOWE0NDE0MzNmOTAwODAwMjRjZDA5Nzhi
MS4uMTkzYmYyYjVmNmM2NjZjN2JkNTA2MmFkNDQ3NDQxNWJmYjMwNDI5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMTMwLDYg
KzEzMCwxNiBAQCB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQoKQogICAgIG1fY2Fs
bGJhY2tzLT5vbkJsb2NrZWQoKTsKIH0KIAordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9j
a2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkJsb2Nr
ZWQoZXhpc3RpbmdWZXJzaW9uKTsKK30KKwordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25VcGdy
YWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZT4gZGF0YWJhc2UpCit7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRl
ZChvbGRWZXJzaW9uLCBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3
IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFzZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKaW5kZXggNGM3MGI2NjZlYWM4MTNm
OWI5OGVjZjg3MmU3OGNkMjQ4NmQ2N2UxYS4uODI1NzU4YWFkZTkzZjQxZjI2MjkzMDM2OGJkOTY2
NjBmZTUyYTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5n
VmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZl
cnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKIAog
cHJpdmF0ZToKICAgICBJREJDYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdlYklEQkNhbGxiYWNr
cz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCmluZGV4IDkwMWI1NWU1NGYyYWFmZTA0ZmZmYzIyY2E5NmIzNTMxOGVm
OTQ3ODYuLjU2YWZlNWZiNWQyYjYyZmE0NDQ5OTU0NDY5MzBhMDFkMGJjOTc3OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6ZGVs
ZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGkKIAogdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAg
ICBBU1NFUlQobV93ZWJJREJEYXRhYmFzZSk7CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+c2V0VmVy
c2lvbih2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBlYyk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eS5jcHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjkyNjkzMGQwZGU1MGUwZWUy
ZDExNzg1Yi4uMDE5ZTU5YmEwNjFmMGZiODRlM2E5M2FiODk1ZmJhOWJlZDVkMWMwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6
On5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90
IG5ld1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZShvbGRWZXJz
aW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Ojpv
blZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKQogewogICAgIG1f
Y2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UocmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgK
aW5kZXggYWZmZGNlNzdkNWQ5NThkYzAwZTBmNmY4MGFjZmZiODAxMjk1OGIzYi4uOTk5NWFiZDJi
NmFkOWQwMjRlMTUyZjEwZDBlZTYwMzFjODVjM2M1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaApAQCAtNDEsNiAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSgp
OwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVl
c3RlZFZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBv
bGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiBwcml2YXRlOgogICAgIElEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5LmNwcAppbmRleCBjMWJlYzEwNzdkNmJjZjQ4N2U5OTQxZTBlZDIxYzZjYmM2MTg2MDE5Li5i
YWJjYmFlMTg0MDljNWRkMjU5MmMwZGZkOTIzMzI2ZmJmNjBlOTRhIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcApAQCAt
MjAzLDcgKzIwMyw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6Z2V0RGF0YWJhc2VO
YW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhCiB9CiAKIAotdm9pZCBJREJG
YWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcikKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENh
bGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKIHsKICAg
ICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsKICAgICBXZWJT
ZWN1cml0eU9yaWdpbiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwpAQCAtMjExLDcgKzIxMSw3IEBA
IHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1l
SW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0KTsKLSAgICBtX3dlYklEQkZhY3Rv
cnktPm9wZW4obmFtZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2lu
LCB3ZWJGcmFtZSwgZGF0YURpcik7CisgICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5hbWUsIHZl
cnNpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJh
bWUsIGRhdGFEaXIpOwogfQogCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmRlbGV0ZURh
dGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENh
bGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApp
bmRleCAyMmE2ZjUyYTg2OTgxNmM4MDU2NjhkNjg0ZDBhN2JmZmZjMjZhZTY5Li5jMGRlOTEwYTky
Y2RlYTkxYTNkM2ExYzUzMGEyODA3YzVhYmZhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFByb3h5KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFs
IHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1
YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggMDgzZGJjY2JlMjY3NWYy
MDk5YjUzNTU3ZjQwMTY4ZTNlMDgzZDc2Ny4uMmNiOTBlYTQ2ZTYzYWFhNjUyODM5NjVhMWM0ZmVl
NGMwOTUyMGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYklEQkNhbGxiYWNrc0ltcGw6OldlYklEQkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcykKICAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKKyAgICAs
IG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eShmYWxzZSkKIHsKIH0KIApAQCAtNzIsNiArNzMsMTAg
QEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViSURCQ3Vyc29yKiBjdXJz
b3IsIGNvbnN0IFdlYklEQktleSYga2V5LAogCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7CisgICAgaWYgKG1fZGlk
Q3JlYXRlRGF0YWJhc2VQcm94eSkgeworICAgICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElE
QkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoc3RhdGljX2Nhc3Q8V2ViSURC
RGF0YWJhc2UqPigwKSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIod2Vi
S2l0SW5zdGFuY2UpKSk7CiB9CiAKQEAgLTEwNSw2ICsxMTAsMTcgQEAgdm9pZCBXZWJJREJDYWxs
YmFja3NJbXBsOjpvbkJsb2NrZWQoKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKIH0K
IAordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNp
b24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChvbGRWZXJzaW9uKTsKK30KKwordm9p
ZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNp
b24sIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgV2ViSURCRGF0YWJhc2UqIGRhdGFi
YXNlKQoreworICAgIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eSA9IHRydWU7CisgICAgbV9jYWxs
YmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0aW9uKSksIElEQkRhdGFiYXNlQmFja2VuZFBy
b3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2UpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKaW5kZXggMzBkNzQzNmM2
YTU5ZjQ4OTYyOTA1MjYwMmFmODkzODQ4MzJiMzkyOC4uMzNjZDIwMjlmYWNmY2Q1Mjk1ZGQ2NjQ0
YWQwMWNjN2RiNzY5OTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNTEsOSArNTEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3Qg
V2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25z
dCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2Vk
KCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbik7Cisg
ICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2Vi
SURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworICAgIGJvb2wgbV9kaWRDcmVh
dGVEYXRhYmFzZVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZjYWFmM2ZlNTY1OWZhZjMxLi4x
NDc1N2JhYzY3MGQ5ZGU0ZmFmYTQ5ZWFhNjg5ZWQ5YzRkYWJiZTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6fldl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcg
bG9uZyBuZXdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2Uob2xk
VmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIG1f
Y2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UodmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4
IDIxYzNkYzdjNWFjNGFkMGJlYThkZjI5MTZlYmIzZjg4YzY3ZmYwNWYuLjE4NTdjYTY1OGQzMGZj
MjYwMDUyMWE2ZGFkMTkzMTMxMzg1N2NmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC00Myw2ICs0
Myw3IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgfldlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5n
ZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pOwogICAgIHZpcnR1
YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuY3BwCmluZGV4IGJjNmQwOWZhMWZiOTcwYzI5N2UxNzdhMjE1NGVlNzEwMThmYWZmZjcuLjkz
NDMyODFjZjRkMGFmMTdjYjZjMzIyNTA4MWRmNDA3MWRhZTg3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtNDcsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSURCRGF0YWJhc2VJbXBsOjpXZWJJREJEYXRh
YmFzZUltcGwoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNl
QmFja2VuZCkKICAgICA6IG1fZGF0YWJhc2VCYWNrZW5kKGRhdGFiYXNlQmFja2VuZCkKKyAgICAs
IG1fY2xvc2VQZW5kaW5nKGZhbHNlKQogewogfQogCkBAIC05NCw4ICs5NSwxMCBAQCB2b2lkIFdl
YklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0aGUgY2FsbGJhY2tzIHRo
YXQgOjpvcGVuIGdhdmUgdXMgc28gdGhhdCB0aGUgYmFja2VuZCBpbgogICAgIC8vIG11bHRpLXBy
b2Nlc3MgY2hyb21pdW0ga25vd3Mgd2hpY2ggZGF0YWJhc2UgY29ubmVjdGlvbiBpcyBjbG9zaW5n
LgotICAgIGlmICghbV9kYXRhYmFzZUNhbGxiYWNrcykKKyAgICBpZiAoIW1fZGF0YWJhc2VDYWxs
YmFja3MpIHsKKyAgICAgICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICByZXR1cm47
CisgICAgfQogICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2RhdGFiYXNlQ2FsbGJhY2tz
KTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKIH0KQEAgLTEwNSw2ICsxMDgsOCBAQCB2
b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6b3BlbihXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2Fs
bGJhY2tzKQogICAgIEFTU0VSVCghbV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9kYXRhYmFz
ZUNhbGxiYWNrcyA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihj
YWxsYmFja3MpKTsKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+cmVnaXN0ZXJGcm9udGVuZENhbGxi
YWNrcyhtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBpZiAobV9jbG9zZVBlbmRpbmcpCisgICAg
ICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCA0ZjgyNTE4MjBhNDli
YmRmZGU1MmZhYjkxZWZmYTVhZWMwOGJhNDZkLi4xNDA5Y2I2NWYwNjVmYjM1ZDQwMDcwM2Y2Yzdi
ZTcyMjRkZDAwMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdU
Rjo6UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gbV9kYXRhYmFz
ZUJhY2tlbmQ7CiAgICAgV1RGOjpSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gbV9k
YXRhYmFzZUNhbGxiYWNrczsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZmxhZyB3aGVuIHdl
IGNvbnNvbGlkYXRlIHR3by1waGFzZSBvcGVuLgorICAgIC8vIGh0dHA6Ly93a2IudWcvOTA0MTEK
KyAgICBib29sIG1fY2xvc2VQZW5kaW5nOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKaW5k
ZXggZDE0YWM3MWUxOGM4NTkzMTUyZWZkZmQ1YzgzOWUwMTcyMGUzZmZkYy4uYWQ3MTQ3NmI3ZWJi
NDY4NmVhODI1Yjk2MjE5MTZlNjNiMjkwYWM3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcApAQCAtNjMsMTcgKzYzLDkgQEAgdm9pZCBX
ZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3MqIGNhbGxi
YWNrcywgY29uc3QgV2ViU2UKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5nZXREYXRhYmFzZU5h
bWVzKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIG9yaWdp
biwgMCwgZGF0YURpcik7CiB9CiAKLQotdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25z
dCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURp
cikKLXsKLSAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIElEQkNhbGxiYWNrc1By
b3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURp
cik7Ci19Ci0KIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0
IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBk
YXRhRGlyKQogewotICAgIC8vIEZJWE1FOiBQYXNzIHZlcnNpb24gYWxvbmcgd2hlbiBXZWJDb3Jl
OjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZQotICAgIC8vIGhhcyBhbiBvcGVuIG1ldGhvZCB0
aGF0IGFjY2VwdHMgaXQuCi0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4s
IDAsIGRhdGFEaXIpOworICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lv
biwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwg
b3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6ZGVsZXRl
RGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJT
dHJpbmcmIGRhdGFEaXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJGYWN0b3J5SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFj
dG9yeUltcGwuaAppbmRleCBmYTQzOGQ3NjQ4ZTM0NjRjNWExY2JkNWNjZjU3Y2ZmMGU1NmYzMjg1
Li44MzNlZWI1OTEyNTliODUzYzMyMWZkMTE4ZjA5NGE1YjhhN2M4ODY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKQEAgLTQ1LDcgKzQ1LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlJbXBsKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRh
dGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9u
ZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRh
dGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggM2ZjMTA1MzA3YmY1N2UwNTQxM2U5ZDE3MmMxNTU5
YzU0MDhiYzdjYS4uMWQzOTUwOTZhYWRiM2E1YjNkZTliNzBkYWI2MGYzMTg5Y2ZiYTk4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1
cHRUZXN0LmNwcApAQCAtMTAyLDcgKzEwMiw4IEBAIFRFU1QoSURCQWJvcnRUZXN0LCBUaGVUZXN0
KQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9ICJkYiBuYW1lIjsKICAgICBNb2NrSURCQ2FsbGJh
Y2tzIGNhbGxiYWNrczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUoImh0dHAiLCAibG9jYWxob3N0IiwgODEpOwotICAgIGZhY3Rvcnkt
Pm9wZW4obmFtZSwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypw
YXRoKi8pOworICAgIGNvbnN0IGludDY0X3QgRHVtbXlWZXJzaW9uID0gMjsKKyAgICBmYWN0b3J5
LT5vcGVuKG5hbWUsIER1bW15VmVyc2lvbiwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUq
LywgU3RyaW5nKCkgLypwYXRoKi8pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAK
aW5kZXggMjI3Nzg4NzVmYTkzNDAyMDc4NzMwMTM4ZTEzYTM0NjE2ZjQzNTkxMi4uODYwNWMwZjFh
YzYyODdmZmRjODI4MThlNWEzZTA1NjM0YThiMmM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMDAs
NiArMTAwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZha2VJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEZha2VJREJEYXRhYmFz
ZUNhbGxiYWNrcygpKTsgfQogICAgIHZpcnR1YWwgfkZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJz
aW9uKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0
X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklERSB7IH0KIHByaXZhdGU6
CiAgICAgRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZiMmVlMTU5
MWMwYzRmMzA0MGY5ZTdkOGYyYTM4NjQwNGFhNDljNTkuLmNlNWQ5YWQwOWUwZmRiZWUyZmU3MDcx
OGFmYTBlMDA3ZGUxNzM1ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1v
bi1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdp
dGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMTQgIEFkcmllbm5lIFdhbGtlciAg
PGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmsgY3NzMi4xLzIwMTEw
MzIzL2M1NDEtd29yZC1zcC0wMDAuaHRtIGFzIGZhaWxpbmcgb24gV2luZG93cyBDaHJvbWl1bQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQt
ZXhwZWN0ZWQudHh0CmluZGV4IDk5MDgzY2Q3N2E5ZDUwNmIxZjk2NWM4ZDM0MDVhN2Q4OTJhYTZh
NjMuLjVhMDU4Y2YxMjY1OWRjYWE0YmYxNDU4OGVlODQ1NjlhNmM3ZjVjNWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3Rl
ZC50eHQKQEAgLTExLDcgKzExLDEzIEBAIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIHJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZAogRklYTUU6IFRoaXMgc2hvdWxkIGdl
dCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IKIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrCi1GQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhw
ZWN0ZWRseS4KKwordXBncmFkZU5lZWRlZCgpOgorUEFTUyBkYi52ZXJzaW9uIGlzIDIKK3RyYW5z
YWN0aW9uLmFib3J0KCkKKworb25BYm9ydCgpOgorRkFJTCBldmVudC50YXJnZXQuZGIudmVyc2lv
biBzaG91bGQgYmUgMC4gV2FzIDIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKaW5k
ZXggZjIyMmNhMTVkMDljNzRkM2EyZjQ0Nzk4ZDIwYmRjMThlNTMyNTE2Zi4uMDRmMjgxYWFkODQ3
ZTg4Njg2MmY3MzlhZTRjZmEyOTQ3MjcyNjJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lv
bi1leHBlY3RlZC50eHQKQEAgLTMzLDE3ICszMyw1NyBAQCBQQVNTIGRiLnZlcnNpb24gaXMgInNv
bWUgdmVyc2lvbiIKIGRiLmNsb3NlKCkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUs
IDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQ
QVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorUEFTUyBTdHJpbmcocmVx
dWVzdC50cmFuc2FjdGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorRkFJTCBldmVu
dC5vbGRWZXJzaW9uIHNob3VsZCBiZSBzb21lIHZlcnNpb24gKG9mIHR5cGUgc3RyaW5nKS4gV2Fz
IDAgKG9mIHR5cGUgbnVtYmVyKS4KK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCityZXF1ZXN0
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0cmFuc2FjdGlvbkNvbXBsZXRlZAorCit0cmFuc2Fj
dGlvbkNvbXBsZXRlZCgpOgorZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKKwogZmlyc3RP
cGVuV2l0aFZlcnNpb24oKToKLUZBSUwgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUg
dHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIKIFBBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCi1GQUlMIGRiLnZlcnNp
b24gc2hvdWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlw
ZSBzdHJpbmcpLgotRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3Bl
bkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorUEFTUyBkYi52ZXJzaW9uIGlz
IDIKK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIgog
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKQogUEFTUyBTdHJpbmco
cmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdIgogcmVxdWVzdC5v
bmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKLUZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxs
ZWQgdW5leHBlY3RlZGx5LgorCitzZXRWZXJzaW9uTm90QWxsb3dlZCgpOgorUEFTUyBldmVudC50
eXBlIGlzICJlcnJvciIKK3JlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gWW91IGNhbid0IHVz
ZSB0aGUgc2V0VmVyc2lvbiBmdW5jdGlvbiBpZiB5b3UndmUgYWxyZWFkeSBzZXQgdGhlIHZlcnNp
b24gdGhyb3VnaCBhbiBvcGVuIGNhbGwuICBUaGUgY3VycmVudCBpbnRlZ2VyIHZlcnNpb24gaXMg
MgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVl
c3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24KKworZXJyb3JXaGVuVHJ5aW5n
TG93VmVyc2lvbigpOgorcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSBUaGUgcmVxdWVzdGVk
IHZlcnNpb24gKDEpIGlzIGxlc3MgdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbiAoMikuCityZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBzZWNvbmRVcGdyYWRlTmVlZGVkCityZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1Y2Nl
c3MKKworc2Vjb25kVXBncmFkZU5lZWRlZCgpOgorZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IHRy
dWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMg
NAorCit0aGlyZE9wZW5TdWNjZXNzKCk6CitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgaXMg
dHJ1ZQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgNAorZGIu
Y2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNj
ZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MKKworZm91cnRoT3BlblN1Y2Nlc3MoKToKK2RiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDQKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQK
aW5kZXggYmFjM2NjZjJjMzRiZmYwOTQ5NDNlNjEzZmEwZGI2Mzg3ZGZiYTM5NC4uMDEzOGI2ODFl
YWQxMGJjNDg5NzcxYTE1OTA4ZTY0YTkyNmU5YmZkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0CkBAIC0xMSwxNSArMTEsNDIgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
IGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAK
K2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVu
dCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNp
b24gaXMgMgorUEFTUyBTdHJpbmcoZXZlbnQpIGlzICJbb2JqZWN0IElEQlVwZ3JhZGVOZWVkZWRF
dmVudF0iCisKIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVwZ3Jh
ZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIGNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyCiBQ
QVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgogcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKIAordmVyc2lvbkNoYW5nZUhhbmRsZXIoKToK
K3Nhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lv
bmNoYW5nZSIKK0ZBSUwgU3RyaW5nKGV2ZW50KSBzaG91bGQgYmUgW29iamVjdCBJREJWZXJzaW9u
Q2hhbmdlRXZlbnRdLiBXYXMgW29iamVjdCBJREJVcGdyYWRlTmVlZGVkRXZlbnRdLgorUEFTUyBl
dmVudC50YXJnZXQgaXMgY29ubmVjdGlvbjEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQ
QVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworCitibG9ja2VkRXZlbnRIYW5kbGVyKCk6CitQQVNT
IHNhd1ZlcnNpb25DaGFuZ2VFdmVudCBpcyB0cnVlCitnb3RCbG9ja2VkRXZlbnQgPSB0cnVlCitG
QUlMIFN0cmluZyhldmVudCkgc2hvdWxkIGJlIFtvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50
XS4gV2FzIFtvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XS4KK1BBU1MgZXZlbnQub2xkVmVy
c2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworUEFTUyBldmVudC50eXBlIGlz
ICJibG9ja2VkIgorY29ubmVjdGlvbjEuY2xvc2UoKQorCitzZWNvbmRVcGdyYWRlTmVlZGVkRXZl
bnRIYW5kbGVyKCk6CitQQVNTIGdvdEJsb2NrZWRFdmVudCBpcyB0cnVlCitnb3RTZWNvbmRVcGdy
YWRlTmVlZGVkRXZlbnQgPSB0cnVlCisKIHNlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOgotRkFJTCBn
b3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1MgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJl
dHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBjMDYwOWVlNGMwNWExZTdkYTFhOGU5MWE5
ZTlhODg5MzA4ODBkZmYwLi41NTFmOGQ4NmViNmU3NzZkZTYzMTg4YTlhYTAzMTM1MDA4ZWNiNmY2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApA
QCAtMTAsMTEgKzEwLDI3IEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQogCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2Ri
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdvYmplY3RzdG9yZScpCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdl
dC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlvbi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25D
b21wbGV0ZSA9IHRydWUKK3NldFRpbWVvdXQoY2xvc2VEQiwgMCkKKwogb3BlblN1Y2Nlc3MoKToK
IFBBU1MgZGlkQ2FsbENsb3NlREIgaXMgZmFsc2UKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0
ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3Vs
ZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIu
dmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKK2RiLnRy
YW5zYWN0aW9uKGRiLm9iamVjdFN0b3JlTmFtZXMpCisKK2Nsb3NlREIoKToKK2RpZENhbGxDbG9z
ZURCID0gdHJ1ZQorZGIuY2xvc2UoKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVj
dGVkLnR4dAppbmRleCBlNjVlZGIyNGJkZDZlMjE5NzMyNTI0YzExOTU4YmUyNDBjOTNmOGNhLi5j
M2Y4MDk2ZTlmNGRjYjM2ZTQ2NTEyM2U4Mzg0NWJmNDlmZTJhZDEwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTksMTQgKzksMjQgQEAgZGJu
YW1lID0gImludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIgogaW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcp
CiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVu
dC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCit0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlvbi5vbmNvbXBsZXRlOgor
c2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK2RiLmNsb3NlKCkKKwogb3BlblN1Y2Nlc3Mo
KToKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdh
cyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiBFeHBlY3RpbmcgZXhj
ZXB0aW9uIGZyb20gdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnLCAncmVhZHdyaXRl
JykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1GQUlMIGNvZGUgc2hvdWxkIGJlIDExLiBX
YXMgOC4KLUZBSUwgZW5hbWUgc2hvdWxkIGJlIEludmFsaWRTdGF0ZUVycm9yLiBXYXMgTm90Rm91
bmRFcnJvci4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKK1BB
U1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA2NWVkODVkNDgxOWRkMDBhM2UwZTM0YWM5YzQ0
ZDI5Y2M0ZGExZDBiLi4xOGYzM2I4YjQ2ZTJlYjU0MmNjYjk0ODE4OTFjYmVhODNkYWUwMzBhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3Nl
LWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQK
QEAgLTEwLDEyICsxMCwyMiBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAogCit1cGdyYWRlTmVlZGVkKCk6Citk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3Cit0cmFu
c2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J29zJykKK2RiLmNsb3NlKCkKKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0
aW9uQ29tcGxldGUgPSB0cnVlCisKIG9wZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5zYWN0aW9u
Q29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25D
b21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lv
biBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQ
QVNTIGRiLnZlcnNpb24gaXMgNwogdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKQot
RkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiA4CitGQUlMIHRy
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
bnZhbGlkU3RhdGVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAxMQogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVk
LW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZWYxNTNkMGQ5NGUyMDhjMWYzYTRlYTRjYmI2
ZWRhODVjOTdiM2I4OS4uNTI4YmU3NjFhMjllMjA5YTMwN2E0YWNkMzYzMWYxOTQ4NThjMzAwYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRl
ZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtNDYsNiArNDYs
MTAgQEAgY29ubmVjdGlvbjEuY2xvc2UoKQogCiBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFj
aygpOgogCit1cGdyYWRlTmVlZGVkQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBp
cyAxCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorCiBvcGVuV2l0aFZlcnNpb25TdWNjZXNz
Q2FsbGJhY2soKToKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxl
bmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVj
dHMtZXhwZWN0ZWQudHh0CmluZGV4IGU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1NGZmZTUzZjZi
OWNhNTguLmQyOGNjN2ZkMDExOWI2NzEwM2JkMzljMTYwZGM5YzQ3ZmQxMzg4ZmQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2
ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1z
aWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xMSw4ICsxMSwxMyBAQCBpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVsZXRlU3VjY2VzcygpOgogcmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2soKToKK2dvdEZp
cnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCisKIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigp
OgotRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBjb25uZWN0aW9u
MSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHVu
ZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKIFBBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBp
cyAiW29iamVjdCBJREJEYXRhYmFzZV0iCkBAIC0yNCw3ICsyOSwxMyBAQCByZXF1ZXN0ID0gZGIu
c2V0VmVyc2lvbigndmVyc2lvbicpCiByZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uRXJyb3IK
IHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjawogcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrCi1GQUlMIG9udmVyc2lvbmNoYW5n
ZSBjYWxsZWQgdW5leHBlY3RlZGx5CisKK3NldFZlcnNpb25FcnJvcigpOgorT3BlbiB1cCBhIG5l
dyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0aW9uMSB3ZXJlIHRvIGdldCBhIHZlcnNpb25j
aGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZlcmVkIGJlZm9yZSB0aGUgdGVzdCBmaW5pc2hl
cworbmV3X2RiID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzInKQorbmV3X2RiLm9uc3VjY2Vz
cyA9IG5ld0RCU3VjY2VzcworCituZXdEQlN1Y2Nlc3MoKToKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50
eHQKaW5kZXggNjk5MjA5YWY3N2QzMWEyYWVkY2JmYTRkNDMxYjkzZGIxYWUxMTJkZC4uY2VmZjA5
NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUt
ZXhwZWN0ZWQudHh0CkBAIC02NSw4ICs2NSwxMyBAQCBGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hv
dWxkIGJlIG5vbi1udWxsLiBXYXMgdW5kZWZpbmVkCiBGQUlMIGV2ZW50Lm5ld1ZlcnNpb24gc2hv
dWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRl
ZmluZWQpLgogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwKIAordXBncmFkZU5lZWRl
ZENhbGxiYWNrKCk6Citnb3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50Lm5l
d1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKKwogb3BlbldpdGhWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrKCk6Ci1GQUlMIGdvdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQog
UEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12
ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCAzMzcwY2FkMDA0NzE2YzNkNDljOWI4NWIxNWY4NmE5
ZDk5Y2VhZGRiLi45MDU0NzhkZGU0ODcyMjgzMmM4MTBjMmQ2OTNiZDI2MTkyMzg5YWY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0
aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMTMsMTcgKzEz
LDMzIEBAIFNob3VsZCB0cmlnZ2VyOgogNC4xLjc6IElmIHRoZSB2ZXJzaW9uIG9mIGRiIGlzIGxv
d2VyIHRoYW4gdmVyc2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgInZlcnNp
b25jaGFuZ2UiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24sIHZlcnNpb24sIHJlcXVlc3Qg
YW5kIHVwZ3JhZGUgY2FsbGJhY2suCiA0LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24uCiByZXF1ZXN0
ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQotRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxk
IGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgor
UEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iCiAKK1BB
U1MgSW4gdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOgorVGVzdCA0LjguOS4xOgorZGIg
PSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgorVGVzdCA0LjguOS4zOgorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKK1BBU1Mg
ZXZlbnQubmV3VmVyc2lvbiBpcyA3CitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzICJk
b25lIgorVGVzdCA0LjEuNDoKK1BBU1MgZGIubmFtZSBpcyBkYm5hbWUKK1BBU1MgZGIudmVyc2lv
biBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKK3RyYW5zYWN0aW9u
ID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCitQQVNTIFN0cmluZyh0cmFuc2FjdGlvbikgaXMg
IltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29t
ZU9TIikKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCiAKIG9wZW5TdWNjZXNzKCk6CiBU
ZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgcnVuLgotRkFJ
TCBzYXdVcGdyYWRlTmVlZGVkIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIHNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VXBn
cmFkZU5lZWRlZCBpcyB0cnVlCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQog
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBLaW5kIG9mIHRlc3QgNC4xLjk6CiBQQVNTIFN0cmlu
ZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBi
ZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVy
c2lvbiBpcyA3CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158686</attachid>
            <date>2012-08-15 18:45:22 -0700</date>
            <delta_ts>2012-08-16 00:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120815184448.patch</filename>
            <type>text/plain</type>
            <size>87315</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ3NGI4ZjhhOWY4ODA5
ZGFlMGY4MjRmODUwNmRmZjkwMmY4NzdmMC4uM2FlODQxZjNjZWExZDJlMDZhMWY1NDg5NGI0YmVm
YzIwNTkwZTUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgV2Ug
bm93IHRha2UgYSBwb2ludGVyIHRvIHRoZSBvcGVuREJSZXF1ZXN0IGlmIHRoaXMgaXMgYSB2ZXJz
aW9uCisgICAgICAgIGNoYW5nZSB0cmFuc2FjdGlvbiBhcyBhIHJlc3VsdCBvZiBhbiBvcGVuLXdp
dGgtdmVyc2lvbiBjYWxsIHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGNsZWFyIHRoZSB0cmFuc2Fj
dGlvbiBwcm9wZXJ0eSBvbiB0aGUgb3BlbkRCUmVxdWVzdCBhcyBzb29uIGFzIHRoZQorICAgICAg
ICB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIGRpc3BhdGNoZWQgcGVyIHRoZSBzcGVjICgiLi4uIHNl
dCByZXF1ZXN0J3MKKyAgICAgICAgdHJhbnNhY3Rpb24gcHJvcGVydHkgdG8gbnVsbC4uLiAiLCBj
dXJyZW50bHkgNC44LjEyKS4KKworICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6fklEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0xNSAgQmV0aCBEYWtpbiAgPGJk
YWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkzNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJmYWVkYmVlZTIw
NGNlNjUxZWM0ZmRhYTExM2Y2NmM4ZTgwN2JjMTYuLjllYTdiZDVkODMyOWY0OTFhYzYwMTg3MWNj
MTFhMzY1ODM2OTg2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMg
QEAKKzIwMTItMDgtMTQgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZlcnNp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJv
eHk6Om9uQmxvY2tlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJREJD
YWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJh
Y2tzUHJveHkuaDoKKyAgICAgICAgKElEQkNhbGxiYWNrc1Byb3h5KToKKyAgICAgICAgKiBzcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFz
ZUJhY2tlbmRQcm94eTo6c2V0VmVyc2lvbik6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5OjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMv
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKToKKyAgICAgICAgKiBz
cmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRQ
cm94eSk6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5OjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6OldlYklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MpOgorICAgICAgICBXZSBkb24n
dCB3YW50IHRvIGNyZWF0ZSBJREJEYXRhYmFzZUJhY2tlbmRQcm94eSBhZ2FpbiBpZiB3ZSd2ZSBh
bHJlYWR5CisgICAgICAgIGNyZWF0ZWQgaXQgZHVyaW5nIHVwZ3JhZGVOZWVkZWQuICBUaGlzIG1h
a2VzCisgICAgICAgIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmQpIHJl
dXNlIGl0cyBwcmV2aW91cworICAgICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgaWYg
aXQgaGFzIG9uZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJs
b2NrZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5oOgorICAgICAgICAoV2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogc3JjL1dl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAo
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpXZWJJREJE
YXRhYmFzZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmNsb3Nl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpvcGVuKToKKyAgICAgICAg
KiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkZhY3RvcnlJbXBsOjpvcGVuKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUlt
cGwuaDoKKyAgICAgICAgKFdlYklEQkZhY3RvcnlJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NJbXBsOjpvbkNvbXBsZXRlKToKKyAgICAgICAgKiB0ZXN0cy9JREJB
Ym9ydE9uQ29ycnVwdFRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAg
ICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHA6CisKIDIwMTItMDgtMTUgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEluZGV4
ZWREQjogRGVsZXRlIHVudXNlZCBXZWJLaXQgQVBJIGN1cnNvciBhY2Nlc3NvcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA1YzNk
ZmNiNmI1NDJjMWJlMDZiMjQxYjQ3Y2U5YmFjYjliNjYyOWI0Li4yYTM5Y2FiZmIzOTRkNmM2ZTJi
ODM5YmM3YzEyODg2ODgzNjVjZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSURC
T2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKICNpbmNsdWRl
ICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTIwOCw2ICsy
MDksNyBAQCBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBJREJEYXRhYmFzZTo6
c2V0VmVyc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZQogICAgIH0KIAogICAgIFJlZlB0cjxJREJW
ZXJzaW9uQ2hhbmdlUmVxdWVzdD4gcmVxdWVzdCA9IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIHZlcnNpb24pOworICAgIEFTU0VS
VChtX2JhY2tlbmQpOwogICAgIG1fYmFja2VuZC0+c2V0VmVyc2lvbih2ZXJzaW9uLCByZXF1ZXN0
LCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBlYyk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0z
MDEsNiArMzAzLDE3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlQ29ubmVjdGlvbigpCiAgICAg
fQogfQogCit2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJz
aW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwg
IXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1f
Y2xvc2VQZW5kaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBn
cmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnROYW1l
cygpLnZlcnNpb25jaGFuZ2VFdmVudCkpOworfQorCiB2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNp
b25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIGlmIChtX2NvbnRleHRTdG9w
cGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCkBAIC0zMTQsNiArMzI3LDcgQEAgdm9p
ZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIAog
dm9pZCBJREJEYXRhYmFzZTo6cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpCiB7CisgICAgQVNT
RVJUKG1fYmFja2VuZCk7CiAgICAgbV9iYWNrZW5kLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tz
KG1fZGF0YWJhc2VDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMyNmE1ODgzZGNmMzk0NzNjYWExMDk3
MjkwNWYzZmU2NzVlLi5hN2Q3MmNlMTk4ZjNlMGZkYWFkMGNhM2YzMGY4NmM0ZWYzN2E3MmIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAg
LTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIodmVyc2lvbmNoYW5nZSk7CiAKICAgICAvLyBJREJEYXRhYmFzZUNhbGxiYWNrcworICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5l
d1ZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5n
JiByZXF1ZXN0ZWRWZXJzaW9uKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmNwcAppbmRleCBhMzEyNTFjOGQ2Mzc4NTBjZjg3YWQ4Y2E0YzJlOWVlMWE1YTI4ZWIw
Li5mOWIxYWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmNwcApAQCAtNDQ0LDEwICs0NDQsNiBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAK
IHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0
aW9uKGludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBy
cENhbGxiYWNrcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3b24ndCBiZSByZWFj
aGVkIHVudGlsIGl0J3MgZXhwb3NlZCB0byBzY3JpcHQgaW4KLSAgICAvLyB3YmsudWcvOTI4OTcu
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CiAgICAgQVNTRVJUKGNhbGxiYWNrcyk7CiAgICAgZm9y
IChEYXRhYmFzZUNhbGxiYWNrc1NldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2RhdGFiYXNlQ2Fs
bGJhY2tzU2V0LmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuZW5kKCk7ICsr
aXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IDE2YTllYTZjNTA4YjBkOTJiNjFlNDk5N2M1NDMwMTMy
YTZkMmFjYWEuLmZhYTE2NmY3ZjUxMWZmNjY2NmYzOTczZGJiODQwNGI3ZjliNTIzZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VD
YWxsYmFja3MuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0
YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNo
YW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdl
KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCAxOTQxMmZj
YmU1MGFiNDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmLi5jZWI3YWYzMWYzZTIyNDg2MWUwNTA3
NjIxMGZhZmM1YTA1OGRmMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTUyLDYg
KzUyLDEyIEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogICAgICAgICBtX2RhdGFiYXNlLT5vblZlcnNpb25DaGFu
Z2UodmVyc2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNp
b25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAg
aWYgKG1fZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uVmVyc2lvbkNoYW5nZShvbGRW
ZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
OnVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5oCmluZGV4IGU4YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2RmYjgyYmU3ZmIuLjAy
YzhkZTBkZmU5ZjZlZmRlZDY4MDViN2JhYzkyMTc4ZmI4MDg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbC5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGlu
dDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBjZjUyY2MxZmUyYjEzNTVi
NmM1NGVkY2UyNjVlMGYzZThjM2E1ZTkxLi5jODNiYTM2NDVkYmY2ZDM5ODNjOWNjYTdkN2IzN2Fi
MTUwNzcyYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2Uu
aCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5o
IgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMTA1LDcgKzEwNSw3IEBAIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJPcGVu
REJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSkgewogICAgICAgICBlYyA9IE5BVElWRV9UWVBF
X0VSUjsKQEAgLTExNCwxMSArMTE0LDE2IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFj
dG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTCiAgICAg
aWYgKCFpc0NvbnRleHRWYWxpZChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBS
ZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJ
REJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAgbV9iYWNrZW5kLT5vcGVuKG5hbWUsIHJlcXVl
c3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFi
YXNlUGF0aChjb250ZXh0KSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IHJlcXVlc3Qg
PSBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyks
IHZlcnNpb24pOworICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9uLCByZXF1ZXN0LCBj
b250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBh
dGgoY29udGV4dCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitQYXNzUmVmUHRyPElEQk9w
ZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1
cm4gb3Blbihjb250ZXh0LCBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24s
IGVjKTsKK30KKwogUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gSURCRmFjdG9y
eTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobmFtZS5pc051bGwo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmlu
ZGV4IDQ2MTFjYjZjNGZlODM5OTBiNDcyNGE0M2JmMDljOWE1YTk1ZDg4OGQuLjM2NDViYjgxZGM3
ZWU5NjY5MDVkYTY1MmMwNjRkYTczODZmNjUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUg
IkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5o
IgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01OCw3ICs1OCw4IEBAIHB1YmxpYzoK
IAogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW4oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0
cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NS
ZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IHNob3J0IGNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQdHI8SURCS2V5PiBz
ZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggMDM4OWViMmFhZTdlMTI5OTU0ZDlhY2YwM2E1OWZm
YmNjN2ZiYWFjYy4uYmY3MWEyZGQyNWQxZmY5NWUyNjQzNWY0ZTQxZjBjNDFiOTc2NzJjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKQEAg
LTMwLDcgKzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIF0gSURCRmFjdG9yeSB7CiAgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPWdldERh
dGFiYXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1lcygpOwogCi0gICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW4oaW4g
RE9NU3RyaW5nIG5hbWUpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUsIGluIFtPcHRpb25hbF0g
dW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFi
YXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGluIERPTVN0cmluZyBuYW1l
KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJ
bXBsLmNwcAppbmRleCA2M2JkNDc4M2U1NGFlMzFmNGQ0OTU5NmYzYjYwZDlhZjgyNTRjOWRjLi44
ZGE1YzAyZTQyM2Y2ZjY0ZTU3OTczMGRiNzNmYTI5ZWMyYmU0NjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1w
bC5jcHAKQEAgLTE1MCwxMCArMTUwLDggQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElE
QkZhY3RvcnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVmUHRyPFMKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRJ
bXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBT
ZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0
YURpcmVjdG9yeSkKIHsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEgcGFyYW1ldGVyIGFuZCBw
bHVtYiB0aHJvdWdoIGZyb20gamF2YXNjcmlwdC4KLSAgICBpbnQ2NF90IHZlcnNpb24gPSBJREJE
YXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBzZWN1cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNvbnN0IFN0cmluZyB1
bmlxdWVJZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlP
cmlnaW4uZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IGNhMWQwNTI4MmE4YzVlZGY3NjZk
NWU1NTUwOGZhZTBhOWMwNDhjNjUuLmNhZDNiNWEyNGIyOTlhOTI5OWMyYWQyOTRlM2IyZWEwNGNm
ZDcyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgZmlsZUlkZW50
aWZpZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0
X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYyMWVhNDcxOWY2MzY5NDI5
Zjc2NzM5MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0NGVhNDhhY2Y2NjZmZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGM0NjZhMjYzMmY3YzczODJjNGFmM2RiN2YwY2RiYThmMGI1YjExZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRlZEV2ZW50LmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3Vy
Y2UsIGludDY0X3QgdmVyc2lvbikKK3sKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVx
dWVzdChhZG9wdFJlZihuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBzb3VyY2UsIHZlcnNp
b24pKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVl
c3QucmVsZWFzZSgpOworfQorCitJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2Us
IGludDY0X3QgdmVyc2lvbikKKyAgICA6IElEQlJlcXVlc3QoY29udGV4dCwgc291cmNlLCAwKQor
ICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCit7CisgICAgQVNTRVJUKCFtX3Jlc3VsdCk7Cit9CisK
K0lEQk9wZW5EQlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KCkKK3sKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBJREJPcGVuREJSZXF1ZXN0OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQk9wZW5EQlJlcXVlc3Q7Cit9CisK
K3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qgb2xkVmVyc2lvbikKK3sK
KyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQorICAgICAgICByZXR1cm47CisgICAgZW5x
dWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVy
c2lvbiwgZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkpOworfQorCit2b2lkIElEQk9wZW5EQlJl
cXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBUcmFuc2FjdGlvbkJhY2tlbmQsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBwcnBEYXRhYmFzZUJhY2tlbmQpCit7
CisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kID0gcHJw
RGF0YWJhc2VCYWNrZW5kOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHBycFRyYW5zYWN0aW9uQmFja2VuZDsKKyAgICBSZWZQ
dHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCk7CisKKyAgICBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHRyYW5zYWN0aW9uQmFja2VuZCwgSURCVHJhbnNhY3Rpb246OlZFUlNJT05f
Q0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CisgICAgdHJhbnNhY3Rpb25CYWNrZW5k
LT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOworICAgIG1fdHJhbnNhY3Rpb24gPSBmcm9u
dGVuZDsKKyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2Uo
KSk7CisKKyAgICBpZiAob2xkVmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZl
cnNpb24pIHsKKyAgICAgIC8vIFRoaXMgZGF0YWJhc2UgaGFzbid0IGhhZCBhbiBpbnRlZ2VyIHZl
cnNpb24gYmVmb3JlLgorICAgICAgb2xkVmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRl
ZmF1bHRJbnRWZXJzaW9uOworICAgIH0KKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRl
ZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCkudXBncmFk
ZW5lZWRlZEV2ZW50KSk7Cit9CisKK2Jvb2wgSURCT3BlbkRCUmVxdWVzdDo6c2hvdWxkRW5xdWV1
ZUV2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fcmVh
ZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKKyAgICBpZiAobV9y
ZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwor
fQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjM4ZjYzMTU3NWFhYzg4NTFkODA1NjM1YjhlNTQ0MGYwZWRlMjhiMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJPcGVuREJSZXF1ZXN0X2gKKyNkZWZp
bmUgSURCT3BlbkRCUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
I2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
REJPcGVuREJSZXF1ZXN0IDogcHVibGljIElEQlJlcXVlc3QgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKTsKKyAgICB2
aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2Vk
KGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgb25V
cGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZT4pIE9WRVJSSURFOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihibG9ja2VkKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKHVwZ3JhZGVuZWVkZWQpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBib29sIHNo
b3VsZEVucXVldWVFdmVudCgpIGNvbnN0IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIElEQk9w
ZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBz
b3VyY2UsIGludDY0X3QgdmVyc2lvbik7CisKKyAgICBpbnQ2NF90IG1fdmVyc2lvbjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCisjZW5kaWYgLy8gSURCT3BlbkRCUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFlNDZhNTJlMTUwNGYxZjUzYjQ4NGI1YzNkYzY2ODJiMTE5MzFjMWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmlk
bApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgQWN0
aXZlRE9NT2JqZWN0LAorICAgICAgICBFdmVudFRhcmdldAorICAgIF0gSURCT3BlbkRCUmVxdWVz
dCA6IElEQlJlcXVlc3QgeworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2Nr
ZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udXBncmFkZW5lZWRlZDsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcAppbmRleCBmMDg4NmM2NmNiMWRmY2RjZjA0YzEwM2ZlYTFkNThjMzA1OGU5MjRhLi41OGY0
NGQ0ZjYxNjBmYThlZDZmNWQ2NzUzMGM0OTdkODY4MDViZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNTMsMTUgKzUzLDE3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSCiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURC
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQs
IHRoaXMpCisgICAgLCBtX3Jlc3VsdCgwKQogICAgICwgbV9lcnJvckNvZGUoMCkKLSAgICAsIG1f
c291cmNlKHNvdXJjZSkKKyAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX3Ry
YW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcpCiAgICAg
LCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNlKQotICAgICwgbV9jb250ZXh0U3RvcHBlZChmYWxzZSkK
KyAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKICAgICAsIG1fY3Vyc29yRGlyZWN0aW9u
KElEQkN1cnNvcjo6TkVYVCkKICAgICAsIG1fcGVuZGluZ0N1cnNvcigwKQorICAgICwgbV9kaWRG
aXJlVXBncmFkZU5lZWRlZEV2ZW50KGZhbHNlKQogewogICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7
CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKQEAgLTI3Nywx
MCArMjc5LDE1IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0
YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFj
a2VuZCk7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZTsKKyAgICBpZiAobV9y
ZXN1bHQpIHsKKyAgICAgICAgaWRiRGF0YWJhc2UgPSBtX3Jlc3VsdC0+aWRiRGF0YWJhc2UoKTsK
KyAgICAgICAgQVNTRVJUKGlkYkRhdGFiYXNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZGJE
YXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBi
YWNrZW5kKTsKKyAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5n
ZXQoKSk7CisgICAgfQogICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tz
KCk7Ci0KLSAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2Uo
KSk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KIApAQCAtNDI2
LDggKzQzMyw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiBldmVudCkKICAgICBBU1NFUlQobV9lbnF1ZXVlZEV2ZW50cy5zaXplKCkpOwogICAgIEFT
U0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChldmVudC0+dGFyZ2V0
KCkgPT0gdGhpcyk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3RhdGUgPCBET05F
LCAibV9yZWFkeVN0YXRlIDwgRE9ORSglZCksIHdhcyAlZCIsIERPTkUsIG1fcmVhZHlTdGF0ZSk7
Ci0KKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUsICJXaGVuIGRp
c3BhdGNoaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgPCBET05FKCVkKSwgd2FzICVkIiwgZXZl
bnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBET05FLCBtX3JlYWR5U3RhdGUpOwog
ICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpCiAgICAg
ICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CiAKQEAgLTQ1NiwxMSArNDYyLDEyIEBAIGJvb2wgSURC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICB9CiAK
ICAgICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlzcGF0Y2hpbmcsIHRo
aXMgd2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4KLSAgICBBU1NFUlQoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tl
ZEV2ZW50KTsKLSAgICBjb25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFuc2Fj
dGlvbiAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1fZXJyb3JDb2RlICE9
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkudXBncmFkZW5lZWRlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGNvbnN0IGJvb2wgc2V0VHJhbnNhY3Rpb25B
Y3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5z
dWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRl
ZEV2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1f
ZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CiAKICAg
ICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnNldEFj
dGl2ZSh0cnVlKTsKKwogICAgIGJvb2wgZG9udFByZXZlbnREZWZhdWx0ID0gSURCRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CiAgICAgaWYgKHNldFRyYW5z
YWN0aW9uQWN0aXZlKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3RpdmUoZmFsc2UpOwpA
QCAtNDY4LDYgKzQ3NSwxMSBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90aWZ5KQogICAgICAgICBjdXJz
b3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKIAorICAgIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpIHsKKyAgICAgICAg
QVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAgICBtX2RpZEZpcmVV
cGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIGlmIChtX3RyYW5zYWN0aW9u
KSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJvcnRlZCkgewogICAgICAgICAg
ICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CkBAIC00OTQsNiArNTA2LDE2IEBA
IHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCiAgICAg
fQogfQogCit2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2go
KQoreworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uKTsKKyAgICBBU1NFUlQobV90cmFuc2FjdGlv
bi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gRE9ORSk7
CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgbV90cmFuc2FjdGlv
bi5jbGVhcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7Cit9CisKIHZvaWQgSURCUmVx
dWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewogICAgIEFTU0VS
VChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CkBAIC01
MDEsNyArNTIzLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9
PSBQRU5ESU5HKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA9PSBQRU5E
SU5HIHx8IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCwgIldoZW4gcXVldWVpbmcgZXZlbnQg
JXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIG1fcmVhZHlTdGF0ZSk7CiAKICAgICBFdmVudFF1ZXVlKiBldmVudFF1ZXVlID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudFF1ZXVlKCk7CiAgICAgZXZlbnQtPnNldFRhcmdl
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aAppbmRleCBkODFjM2Y3ODRhY2E0ZjYyZGRhM2U4NTJmNGE1OTQzNDlkMDkzYjU1Li42NzZlZjBi
YzVjYTljOGVlYjYyNTFkYjY3YjJiN2M3N2U4NjIyYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7
CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVm
UHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVj
dG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUg
cmVuZGVyZXIgc2lkZS4KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVh
bCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwpAQCAtMTAyLDE4ICsxMDMsMjQgQEAg
cHVibGljOgogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50KGV2
ZW50LCBlYyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFu
ZGxlcigpOwogCisgICAgdm9pZCB0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCk7CisK
ICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpyZWY7CiAgICAg
dXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKIHByb3Rl
Y3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQkFueT4gc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+KTsKLSAgICBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdDsKIAogICAgIFJl
ZlB0cjxJREJBbnk+IG1fcmVzdWx0OwogICAgIHVuc2lnbmVkIHNob3J0IG1fZXJyb3JDb2RlOwog
ICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBSZWZQdHI8RE9NRXJyb3I+IG1fZXJyb3I7
CisgICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4g
bV90cmFuc2FjdGlvbjsKKyAgICBSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKKyAgICBib29sIG1f
cmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0aW9uIHRoZW4gcmVj
ZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBwcml2YXRlOgogICAg
IC8vIEV2ZW50VGFyZ2V0CkBAIC0xMjYsMTEgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+LCBQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4pOwogCiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3VyY2U7Ci0gICAgUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogCi0gICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3Rh
dGU7Ci0gICAgYm9vbCBtX3JlcXVlc3RBYm9ydGVkOyAvLyBNYXkgYmUgYWJvcnRlZCBieSB0cmFu
c2FjdGlvbiB0aGVuIHJlY2VpdmUgYXN5bmMgb25zdWNjZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4K
LSAgICBib29sIG1fY29udGV4dFN0b3BwZWQ7CiAgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBt
X2VucXVldWVkRXZlbnRzOwogCiAgICAgLy8gT25seSB1c2VkIGlmIHRoZSByZXN1bHQgdHlwZSB3
aWxsIGJlIGEgY3Vyc29yLgpAQCAtMTQwLDYgKzE0Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PElEQktleT4gbV9jdXJzb3JLZXk7CiAgICAgUmVmUHRyPElEQktleT4gbV9jdXJzb3JQcmltYXJ5
S2V5OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fY3Vyc29yVmFsdWU7Cisg
ICAgYm9vbCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQ7CiAKICAgICBFdmVudFRhcmdldERh
dGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGEyMzNlN2EzMGU5NzAxN2I3ZTA4
MGMwNjA2NTQ2NTBiODU4YTUzNGIuLmIwZWI4YmJjMWYyZDE4N2FmYWY0ZGJmZTFiZDI3ZTk1NWVj
M2UxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJJREJJbmRleC5oIgog
I2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUg
IklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgi
CiAKQEAgLTQzLDcgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4g
YmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQogewot
ICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRy
YW5zYWN0aW9uKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiKSkpOworICAgIElEQk9wZW5EQlJl
cXVlc3QqIG9wZW5EQlJlcXVlc3QgPSAwOworICAgIHJldHVybiBjcmVhdGUoY29udGV4dCwgYmFj
a2VuZCwgbW9kZSwgZGIsIG9wZW5EQlJlcXVlc3QpOworfQorCitQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5k
LCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIsIElEQk9wZW5EQlJl
cXVlc3QqIG9wZW5EQlJlcXVlc3QpCit7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFu
c2FjdGlvbihhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb24oY29udGV4dCwgYmFja2VuZCwgbW9k
ZSwgZGIsIG9wZW5EQlJlcXVlc3QpKSk7CiAgICAgdHJhbnNhY3Rpb24tPnN1c3BlbmRJZk5lZWRl
ZCgpOwogICAgIHJldHVybiB0cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CkBAIC03OSwxMCArODYs
MTEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZUxl
Z2FjeSgpCiB9CiAKIAotSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSog
ZGIpCitJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJh
Y2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYiwgSURCT3Bl
bkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQogICAgICwgbV9iYWNrZW5kKGJhY2tlbmQpCiAgICAgLCBtX2RhdGFiYXNlKGRiKQor
ICAgICwgbV9vcGVuREJSZXF1ZXN0KG9wZW5EQlJlcXVlc3QpCiAgICAgLCBtX21vZGUobW9kZSkK
ICAgICAsIG1fYWN0aXZlKHRydWUpCiAgICAgLCBtX3N0YXRlKFVudXNlZCkKQEAgLTE4Miw3ICsx
OTAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZURlbGV0ZWQoY29uc3QgU3Ry
aW5nJiBuYW1lKQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUp
CiB7Ci0gICAgQVNTRVJUKG1fc3RhdGUgIT0gRmluaXNoZWQpOworICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UobV9zdGF0ZSAhPSBGaW5pc2hlZCwgIkEgZmluaXNoZWQgdHJhbnNhY3Rpb24gdHJpZWQg
dG8gc2V0QWN0aXZlKCVzKSBpbiAlcCIsIGFjdGl2ZSA/ICJ0cnVlIiA6ICJmYWxzZSIsIHRoaXMp
OwogICAgIGlmIChtX3N0YXRlID09IEZpbmlzaGluZykKICAgICAgICAgcmV0dXJuOwogICAgIEFT
U0VSVChtX3N0YXRlID09IFVudXNlZCB8fCBtX3N0YXRlID09IFVzZWQpOwpAQCAtMzc3LDcgKzM4
NSwxNCBAQCBib29sIElEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+IGV2ZW50KQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRp
c3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCiAgICAgQVNTRVJU
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbXBsZXRlRXZlbnQgfHwgZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7Ci0gICAgcmV0dXJuIElEQkV2ZW50RGlz
cGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0KCksIHRhcmdldHMpOworICAgIGJvb2wgcmV0dXJu
VmFsdWUgPSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRz
KTsKKyAgICAvLyBGSVhNRTogVHJ5IHRvIGNvbnN0cnVjdCBhIHRlc3Qgd2hlcmUgfHRoaXN8IG91
dGxpdmVzIG9wZW5EQlJlcXVlc3QgYW5kIHdlCisgICAgLy8gZ2V0IGEgY3Jhc2guCisgICAgaWYg
KG1fb3BlbkRCUmVxdWVzdCkgeworICAgICAgICBBU1NFUlQoaXNWZXJzaW9uQ2hhbmdlKCkpOwor
ICAgICAgICBtX29wZW5EQlJlcXVlc3QtPnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2go
KTsKKyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBib29sIElEQlRyYW5zYWN0
aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDFmN2FmN2RhZDFiZTk0OGY2YjQxOTU3Zjc5
ZTVmNjg3NDJiOTlhZjAuLjAwNWUzNzM2MzBhNGQyZmYyZWJhZmQ4MWVlMzZlYTBjOTg5YTkyMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJDdXJz
b3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQk9iamVjdFN0b3JlOworY2xhc3MgSURC
T3BlbkRCUmVxdWVzdDsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMgSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJ
REJEYXRhYmFzZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1ZXN0Kik7CiAg
ICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIG1vZGVSZWFkT25seSgpOwpAQCAtMTE5LDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICB1
c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKIHByaXZh
dGU6Ci0gICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqKTsK
KyAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFzZSosIElEQk9w
ZW5EQlJlcXVlc3QqKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+
KTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKQEAgLTE0Miw2ICsxNDQsNyBAQCBwcml2
YXRlOgogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9iYWNr
ZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICBJREJPcGVuREJS
ZXF1ZXN0KiBtX29wZW5EQlJlcXVlc3Q7CiAgICAgY29uc3QgTW9kZSBtX21vZGU7CiAgICAgYm9v
bCBtX2FjdGl2ZTsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzk0MjAyODBlNDY0MGMyMTRjZTExYjE1OWIyMGE1ZmI3OGYzNzkyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVk
ZWRFdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKKworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQkFueS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCVXBncmFkZU5lZWRlZEV2
ZW50PiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24sIGlu
dDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBJREJVcGdyYWRlTmVlZGVkRXZlbnQob2xkVmVyc2lvbiwgbmV3
VmVyc2lvbiwgZXZlbnRUeXBlKSk7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKKyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgZmFs
c2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5jZWxhYmxlKi8pCisgICAgLCBtX29sZFZlcnNp
b24ob2xkVmVyc2lvbikKKyAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9uKQoreworfQorCitJ
REJVcGdyYWRlTmVlZGVkRXZlbnQ6On5JREJVcGdyYWRlTmVlZGVkRXZlbnQoKQoreworfQorCitp
bnQ2NF90IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbigpCit7CisgICAgcmV0dXJu
IG1fb2xkVmVyc2lvbjsKK30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Om5ld1Zl
cnNpb24oKQoreworICAgIHJldHVybiBtX25ld1ZlcnNpb247Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyYgSURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQlVwZ3JhZGVOZWVkZWRFdmVudDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTc4NTY2NGYwMzg5YTFiMDQ1N2M4OWVjMzQxZmIwZWU5ZGYwZjRiMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVO
ZWVkZWRFdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQlVwZ3JhZGVO
ZWVkZWRFdmVudF9oCisjZGVmaW5lIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiSURC
TWV0YWRhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIElEQkFueTsKKworY2xhc3MgSURCVXBncmFkZU5lZWRlZEV2ZW50IDogcHVi
bGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJVcGdyYWRlTmVl
ZGVkRXZlbnQ+IGNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRh
OjpOb0ludFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6
Ok5vSW50VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBBdG9taWNTdHJp
bmcoKSk7CisgICAgdmlydHVhbCB+SURCVXBncmFkZU5lZWRlZEV2ZW50KCk7CisKKyAgICB2aXJ0
dWFsIGludDY0X3Qgb2xkVmVyc2lvbigpOworICAgIHZpcnR1YWwgaW50NjRfdCBuZXdWZXJzaW9u
KCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNv
bnN0OworCitwcml2YXRlOgorICAgIElEQlVwZ3JhZGVOZWVkZWRFdmVudChpbnQ2NF90IG9sZFZl
cnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUp
OworCisgICAgaW50NjRfdCBtX29sZFZlcnNpb247CisgICAgaW50NjRfdCBtX25ld1ZlcnNpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZl
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjk5OTU0OGY0NjEyNmRmNmIxYjA2Njk4MTAwMTVjNjJj
MjdlYmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5E
RVhFRF9EQVRBQkFTRSwKKyAgICAgICAgSW50ZXJmYWNlTmFtZT1JREJWZXJzaW9uQ2hhbmdlRXZl
bnQKKyAgICBdIElEQlVwZ3JhZGVOZWVkZWRFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb247CisgICAgfTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAxMDYzZjA5MThjNTlmZWQwYzY5N2MwZjY0ZDUwNzQwNGYxOTYy
MjA1Li5mNGMzOGY0ZjAxODJmN2VmZmU1OGU4NTI1MjU4N2ZiY2ZmYjYyMmFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC04MjEsOCArODIxLDEwIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFu
Z2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5p
ZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRs
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsJywKKyAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0
YWJhc2UuaWRsJywKQEAgLTE1MTQsNiArMTUxNiw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgnLAor
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3Bw
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25N
b25pdG9yLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
JywKQEAgLTE1MjcsNiArMTUzMSw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCcsCisgICAgICAgICAgICAnTW9k
dWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCcsCisgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNmQwYTEwNTczOGRhOWU4MGE1YTgzMzk3MDdiNDMxYWQ5
MDIzZGEzMi4uYTJmYWVjMTI4MzRiYmE4NDg4Yzc0ZmZmM2RhZDg1MTU4MGY2MDkzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHRleHRJbnB1dCkgXAogICAgIG1hY3JvKHVubG9hZCkgXAogICAgIG1hY3Jv
KHVwZGF0ZXJlYWR5KSBcCisgICAgbWFjcm8odXBncmFkZW5lZWRlZCkgXAogICAgIG1hY3JvKHZl
cnNpb25jaGFuZ2UpIFwKICAgICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlKSBcCiAgICAg
bWFjcm8od3JpdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggNWRhNTdmZmM2Y2Y0
MzI2N2E1ZWMzYmUzMzc1OTViNmNmZTU0ZjgyOC4uMjJhYWE3YjA3MGM0YmI0MmIxNDJlMTFiZGM5
YjM3OWI1N2M0NWY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTM5LDYgKzM5LDcg
QEAgU3RvcmFnZUV2ZW50CiBTVkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwgY29uZGl0aW9u
YWw9U1ZHCiBTVkdab29tRXZlbnQgY29uZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZlbnRzIGludGVy
ZmFjZU5hbWU9U1ZHWm9vbUV2ZW50LCBjb25kaXRpb25hbD1TVkcKK0lEQlVwZ3JhZGVOZWVkZWRF
dmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQg
Y29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogVG91Y2hFdmVudCBjb25kaXRpb25hbD1UT1VD
SF9FVkVOVFMsIHJ1bnRpbWVDb25kaXRpb25hbD10b3VjaEVuYWJsZWQKIERldmljZU1vdGlvbkV2
ZW50IGNvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNmQ5NzJjMzk2ZDc2MzMyZTFhMGIyNjU3MzFhZTNkYjhh
NDlmMjFlOS4uNzkxYmQ0ZWRhNWNhMzdhZjQ1NzgzNjM0OTc3OTUxMzA3NGMyZDJmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC05LDYgKzksNyBAQCBFdmVu
dFNvdXJjZQogRmlsZVJlYWRlciBjb25kaXRpb25hbD1CTE9CCiBGaWxlV3JpdGVyIGNvbmRpdGlv
bmFsPUZJTEVfU1lTVEVNCiBJREJEYXRhYmFzZSBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNF
CitJREJPcGVuREJSZXF1ZXN0IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKIElEQlJlcXVl
c3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVHJhbnNhY3Rpb24gY29uZGl0aW9u
YWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgY29uZGl0aW9uYWw9
SU5ERVhFRF9EQVRBQkFTRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggMzJiMjliNTYzZDZhNTcyMWMxMzUyYmZkNWE2
NDMzOGYxYWI3NTIxNS4uZTE1YjMwZDllNDNmMTU1M2Q0MTVhODI0ZTRhMTU0NThmYzQ2NDIwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkluc3Bl
Y3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgeyB9CisgICAgdmlydHVhbCB2b2lkIG9u
VmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgeyB9
CiBwcml2YXRlOgogICAgIEluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9OwpA
QCAtMjM3LDcgKzIzOCw3IEBAIHByaXZhdGU6CiB2b2lkIEV4ZWN1dGFibGVXaXRoRGF0YWJhc2U6
OnN0YXJ0KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJGYWN0b3J5LCBTZWN1cml0eU9y
aWdpbiogc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewogICAgIFJlZlB0cjxPcGVuRGF0YWJhc2VDYWxs
YmFjaz4gY2FsbGJhY2sgPSBPcGVuRGF0YWJhc2VDYWxsYmFjazo6Y3JlYXRlKHRoaXMpOwotICAg
IGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1lLCBjYWxsYmFjay5nZXQoKSwgc2VjdXJpdHlP
cmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKKyAgICBpZGJGYWN0b3J5LT5vcGVuKGRhdGFiYXNl
TmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBjYWxsYmFjay5nZXQoKSwg
c2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbkZvckRhdGFiYXNl
KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSogaWRiRGF0YWJhc2UsIGNvbnN0IFN0cmluZyYg
b2JqZWN0U3RvcmVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuY3BwCmluZGV4IDdkMmM5Y2Y5OWMxMjNmMDlhNDQxNDMzZjkwMDgwMDI0Y2Qw
OTc4YjEuLjE5M2JmMmI1ZjZjNjY2YzdiZDUwNjJhZDQ0NzQ0MTViZmIzMDQyOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTEz
MCw2ICsxMzAsMTYgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKCkKICAgICBt
X2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9u
QmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25C
bG9ja2VkKGV4aXN0aW5nVmVyc2lvbik7Cit9CisKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9u
VXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblVwZ3JhZGVO
ZWVkZWQob2xkVmVyc2lvbiwgbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbiks
IG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2UpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDRjNzBiNjY2ZWFj
ODEzZjliOThlY2Y4NzJlNzhjZDI0ODZkNjdlMWEuLjgyNTc1OGFhZGU5M2Y0MWYyNjI5MzAzNjhi
ZDk2NjYwZmU1MmE1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2Fs
bGJhY2tzUHJveHkuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7CiAgICAgdmlydHVhbCB2
b2lkIG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlz
dGluZ1ZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBv
bGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPik7
CiAKIHByaXZhdGU6CiAgICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJDYWxs
YmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmNwcAppbmRleCA5MDFiNTVlNTRmMmFhZmUwNGZmZmMyMmNhOTZiMzUz
MThlZjk0Nzg2Li41NmFmZTVmYjVkMmI2MmZhNDQ0OTk1NDQ2OTMwYTAxZDBiYzk3Nzk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6
OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3RpCiAKIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgQVNTRVJUKG1fd2ViSURCRGF0YWJhc2UpOwogICAgIG1fd2ViSURCRGF0YWJhc2UtPnNl
dFZlcnNpb24odmVyc2lvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgZWMp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFz
ZUNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDgxNmZhZjZjNGRlNzBhZTY5MjY5MzBkMGRlNTBl
MGVlMmQxMTc4NWIuLjAxOWU1OWJhMDYxZjBmYjg0ZTNhOTNhYjg5NWZiYTliZWQ1ZDFjMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuY3BwCkBAIC00OCw2ICs0OCwxMSBAQCBJREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5Ojp+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eSgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50
NjRfdCBuZXdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2Uob2xk
VmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbikKIHsKICAg
ICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHJlcXVlc3RlZFZlcnNpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eS5oCmluZGV4IGFmZmRjZTc3ZDVkOTU4ZGMwMGUwZjZmODBhY2ZmYjgwMTI5NThiM2IuLjk5OTVh
YmQyYjZhZDlkMDI0ZTE1MmYxMGQwZWU2MDMxYzg1YzNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKQEAgLTQx
LDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiBy
ZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0
X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKIAogcHJpdmF0ZToKICAgICBJREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2VDYWxsYmFja3M+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNr
ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tl
bmRQcm94eS5jcHAKaW5kZXggYzFiZWMxMDc3ZDZiY2Y0ODdlOTk0MWUwZWQyMWM2Y2JjNjE4NjAx
OS4uYmFiY2JhZTE4NDA5YzVkZDI1OTJjMGRmZDkyMzMyNmZiZjYwZTk0YSAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAK
QEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFi
YXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogfQogCiAKLXZvaWQg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7
CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CiAgICAg
V2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKQEAgLTIxMSw3ICsyMTEs
NyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcAogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZUltcGwqIHdlYkZyYW1lID0gZ2V0V2ViRnJhbWUoY29udGV4dCk7Ci0gICAgbV93ZWJJREJG
YWN0b3J5LT5vcGVuKG5hbWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9y
aWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOworICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1l
LCB2ZXJzaW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdl
YkZyYW1lLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpkZWxl
dGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBw
cnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5
LmgKaW5kZXggMjJhNmY1MmE4Njk4MTZjODA1NjY4ZDY4NGQwYTdiZmZmYzI2YWU2OS4uYzBkZTkx
MGE5MmNkZWE5MWEzZDNhMWM1MzBhMjgwN2M1YWJmYWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94eSgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmly
dHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2
aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDA4M2RiY2NiZTI2
NzVmMjA5OWI1MzU1N2Y0MDE2OGUzZTA4M2Q3NjcuLjJjYjkwZWE0NmU2M2FhYTY1MjgzOTY1YTFj
NGZlZTRjMDk1MjBhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCisg
ICAgLCBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkoZmFsc2UpCiB7CiB9CiAKQEAgLTcyLDYgKzcz
LDEwIEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1cnNvciog
Y3Vyc29yLCBjb25zdCBXZWJJREJLZXkmIGtleSwKIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBs
OjpvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogeworICAgIGlmICht
X2RpZENyZWF0ZURhdGFiYXNlUHJveHkpIHsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHN0YXRpY19jYXN0PFdl
YklEQkRhdGFiYXNlKj4oMCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRy
KHdlYktpdEluc3RhbmNlKSkpOwogfQogCkBAIC0xMDUsNiArMTEwLDE3IEBAIHZvaWQgV2ViSURC
Q2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7
CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9uZyBvbGRW
ZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7Cit9CisK
K3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRW
ZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFdlYklEQkRhdGFiYXNlKiBk
YXRhYmFzZSkKK3sKKyAgICBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkgPSB0cnVlOworICAgIG1f
Y2FsbGJhY2tzLT5vblVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih0cmFuc2FjdGlvbikpLCBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlKSkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDMwZDc0
MzZjNmE1OWY0ODk2MjkwNTI2MDJhZjg5Mzg0ODMyYjM5MjguLjMzY2QyMDI5ZmFjZmNkNTI5NWRk
NjY0NGFkMDFjYzdkYjc2OTkwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTUxLDkgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNv
bnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwg
Y29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxv
Y2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24p
OworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24s
IFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKKyAgICBib29sIG1fZGlk
Q3JlYXRlRGF0YWJhc2VQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5jcHAKaW5kZXggZmYwZTg5ODY0YjIxYTY0Njg5YjAzMTI2Y2FhZjNmZTU2NTlmYWYz
MS4uMTQ3NTdiYWM2NzBkOWRlNGZhZmE0OWVhYTY4OWVkOWM0ZGFiYmU0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
On5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKQogewogfQogCit2b2lkIFdlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBs
b25nIGxvbmcgbmV3VmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdl
KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbikKIHsKICAg
ICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApp
bmRleCAyMWMzZGM3YzVhYzRhZDBiZWE4ZGYyOTE2ZWJiM2Y4OGM2N2ZmMDVmLi4xODU3Y2E2NThk
MzBmYzI2MDA1MjFhNmRhZDE5MzEzMTM4NTdjZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApAQCAtNDMs
NiArNDMsNyBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5XZWJJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9uKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbik7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmNwcAppbmRleCBiYzZkMDlmYTFmYjk3MGMyOTdlMTc3YTIxNTRlZTcxMDE4ZmFmZmY3
Li45MzQzMjgxY2Y0ZDBhZjE3Y2I2YzMyMjUwODFkZjQwNzFkYWU4NzNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURC
RGF0YWJhc2VJbXBsKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRh
YmFzZUJhY2tlbmQpCiAgICAgOiBtX2RhdGFiYXNlQmFja2VuZChkYXRhYmFzZUJhY2tlbmQpCisg
ICAgLCBtX2Nsb3NlUGVuZGluZyhmYWxzZSkKIHsKIH0KIApAQCAtOTQsOCArOTUsMTAgQEAgdm9p
ZCBXZWJJREJEYXRhYmFzZUltcGw6OmNsb3NlKCkKIHsKICAgICAvLyBVc2UgdGhlIGNhbGxiYWNr
cyB0aGF0IDo6b3BlbiBnYXZlIHVzIHNvIHRoYXQgdGhlIGJhY2tlbmQgaW4KICAgICAvLyBtdWx0
aS1wcm9jZXNzIGNocm9taXVtIGtub3dzIHdoaWNoIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xv
c2luZy4KLSAgICBpZiAoIW1fZGF0YWJhc2VDYWxsYmFja3MpCisgICAgaWYgKCFtX2RhdGFiYXNl
Q2FsbGJhY2tzKSB7CisgICAgICAgIG1fY2xvc2VQZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgcmV0
dXJuOworICAgIH0KICAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2UobV9kYXRhYmFzZUNhbGxi
YWNrcyk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IDA7CiB9CkBAIC0xMDUsNiArMTA4LDgg
QEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4oV2ViSURCRGF0YWJhc2VDYWxsYmFja3Mq
IGNhbGxiYWNrcykKICAgICBBU1NFUlQoIW1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIG1fZGF0
YWJhc2VDYWxsYmFja3MgPSBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQ
dHIoY2FsbGJhY2tzKSk7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnJlZ2lzdGVyRnJvbnRlbmRD
YWxsYmFja3MobV9kYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQor
ICAgICAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNGY4MjUxODIw
YTQ5YmJkZmRlNTJmYWI5MWVmZmE1YWVjMDhiYTQ2ZC4uMTQwOWNiNjVmMDY1ZmIzNWQ0MDA3MDNm
NmM3YmU3MjI0ZGQwMDAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IG1fZGF0
YWJhc2VCYWNrZW5kOwogICAgIFdURjo6UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+
IG1fZGF0YWJhc2VDYWxsYmFja3M7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZsYWcgd2hl
biB3ZSBjb25zb2xpZGF0ZSB0d28tcGhhc2Ugb3Blbi4KKyAgICAvLyBodHRwOi8vd2tiLnVnLzkw
NDExCisgICAgYm9vbCBtX2Nsb3NlUGVuZGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
CmluZGV4IGQxNGFjNzFlMThjODU5MzE1MmVmZGZkNWM4MzllMDE3MjBlM2ZmZGMuLmFkNzE0NzZi
N2ViYjQ2ODZlYTgyNWI5NjIxOTE2ZTYzYjI5MGFjNzcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKQEAgLTYzLDE3ICs2Myw5IEBAIHZv
aWQgV2ViSURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIGNvbnN0IFdlYlNlCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+Z2V0RGF0YWJh
c2VOYW1lcyhJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBv
cmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCi0KLXZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4o
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3Qg
V2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRh
dGFEaXIpCi17Ci0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRh
dGFEaXIpOwotfQotCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmlu
ZyYgZGF0YURpcikKIHsKLSAgICAvLyBGSVhNRTogUGFzcyB2ZXJzaW9uIGFsb25nIHdoZW4gV2Vi
Q29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UKLSAgICAvLyBoYXMgYW4gb3BlbiBtZXRo
b2QgdGhhdCBhY2NlcHRzIGl0LgotICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwg
SURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwgb3Jp
Z2luLCAwLCBkYXRhRGlyKTsKKyAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZl
cnNpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0
KCksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmRl
bGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxs
YmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3Qg
V2ViU3RyaW5nJiBkYXRhRGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRmFjdG9yeUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkZhY3RvcnlJbXBsLmgKaW5kZXggZmE0MzhkNzY0OGUzNDY0YzVhMWNiZDVjY2Y1N2NmZjBlNTZm
MzI4NS4uODMzZWViNTkxMjU5Yjg1M2MzMjFmZDExOGYwOTRhNWI4YTdjODg2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3ICs0
NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
U2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7Ci0g
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFj
a3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5n
JiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9y
aWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFj
a3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5n
JiBkYXRhRGlyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IDNmYzEwNTMwN2JmNTdlMDU0MTNlOWQxNzJj
MTU1OWM1NDA4YmM3Y2EuLjFkMzk1MDk2YWFkYjNhNWIzZGU5YjcwZGFiNjBmMzE4OWNmYmE5ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1
cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25D
b3JydXB0VGVzdC5jcHAKQEAgLTEwMiw3ICsxMDIsOCBAQCBURVNUKElEQkFib3J0VGVzdCwgVGhl
VGVzdCkKICAgICBjb25zdCBTdHJpbmcmIG5hbWUgPSAiZGIgbmFtZSI7CiAgICAgTW9ja0lEQkNh
bGxiYWNrcyBjYWxsYmFja3M7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKCJodHRwIiwgImxvY2FsaG9zdCIsIDgxKTsKLSAgICBmYWN0
b3J5LT5vcGVuKG5hbWUsICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygp
IC8qcGF0aCovKTsKKyAgICBjb25zdCBpbnQ2NF90IER1bW15VmVyc2lvbiA9IDI7CisgICAgZmFj
dG9yeS0+b3BlbihuYW1lLCBEdW1teVZlcnNpb24sICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZy
YW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3Qu
Y3BwCmluZGV4IDIyNzc4ODc1ZmE5MzQwMjA3ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIuLjg2MDVj
MGYxYWM2Mjg3ZmZkYzgyODE4ZTVhM2UwNTYzNGE4YjJjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAt
MTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGYWtlSURCRGF0
YWJhc2VDYWxsYmFja3M+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGYWtlSURCRGF0
YWJhc2VDYWxsYmFja3MoKSk7IH0KICAgICB2aXJ0dWFsIH5GYWtlSURCRGF0YWJhc2VDYWxsYmFj
a3MoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShp
bnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiBwcml2
YXRlOgogICAgIEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOTAy
Y2Q4NzQxYjE0NGQzMDgzYzExOTc5YjExNzdlYzkxYzNiMjk4Li5lOTkxN2JlMTc3Yzc2ZWViM2Yy
NTJmZTJlYjkwM2NlMmYyNGQ4OGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDgtMTQg
IERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWRE
QjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZlcnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
aW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tl
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1j
bG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0
ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Bl
bi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA4LTE1ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmluZyBhIHBsdWctaW4gZWxlbWVu
dCBmcm9tIGEgcGFnZSBvcGVuZWQgaW4gYSBiYWNrZ3JvdW5kIHRhYiBpbiBTYWZhcmkgY3Jhc2hl
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDk5MDgzY2Q3N2E5ZDUwNmIxZjk2NWM4ZDM0MDVhN2Q4OTJh
YTZhNjMuLjVhMDU4Y2YxMjY1OWRjYWE0YmYxNDU4OGVlODQ1NjlhNmM3ZjVjNWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5p
dGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQKQEAgLTExLDcgKzExLDEzIEBAIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZAogRklYTUU6IFRoaXMgc2hvdWxk
IGdldCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IKIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrCi1GQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVu
ZXhwZWN0ZWRseS4KKwordXBncmFkZU5lZWRlZCgpOgorUEFTUyBkYi52ZXJzaW9uIGlzIDIKK3Ry
YW5zYWN0aW9uLmFib3J0KCkKKworb25BYm9ydCgpOgorRkFJTCBldmVudC50YXJnZXQuZGIudmVy
c2lvbiBzaG91bGQgYmUgMC4gV2FzIDIuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQK
aW5kZXggZjIyMmNhMTVkMDljNzRkM2EyZjQ0Nzk4ZDIwYmRjMThlNTMyNTE2Zi4uMDRmMjgxYWFk
ODQ3ZTg4Njg2MmY3MzlhZTRjZmEyOTQ3MjcyNjJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVy
c2lvbi1leHBlY3RlZC50eHQKQEAgLTMzLDE3ICszMyw1NyBAQCBQQVNTIGRiLnZlcnNpb24gaXMg
InNvbWUgdmVyc2lvbiIKIGRiLmNsb3NlKCkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorUEFTUyBTdHJpbmco
cmVxdWVzdC50cmFuc2FjdGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorRkFJTCBl
dmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBzb21lIHZlcnNpb24gKG9mIHR5cGUgc3RyaW5nKS4g
V2FzIDAgKG9mIHR5cGUgbnVtYmVyKS4KK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCityZXF1
ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0cmFuc2FjdGlvbkNvbXBsZXRlZAorCit0cmFu
c2FjdGlvbkNvbXBsZXRlZCgpOgorZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKKwogZmly
c3RPcGVuV2l0aFZlcnNpb24oKToKLUZBSUwgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUK
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIKIFBBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCi1GQUlMIGRiLnZl
cnNpb24gc2hvdWxkIGJlIDIgKG9mIHR5cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2Yg
dHlwZSBzdHJpbmcpLgotRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURC
T3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorUEFTUyBkYi52ZXJzaW9u
IGlzIDIKK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3Rd
IgogcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInN0cmluZyB2ZXJzaW9uIDIiKQogUEFTUyBTdHJp
bmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdIgogcmVxdWVz
dC5vbmVycm9yID0gc2V0VmVyc2lvbk5vdEFsbG93ZWQKLUZBSUwgU3VjY2VzcyBmdW5jdGlvbiBj
YWxsZWQgdW5leHBlY3RlZGx5LgorCitzZXRWZXJzaW9uTm90QWxsb3dlZCgpOgorUEFTUyBldmVu
dC50eXBlIGlzICJlcnJvciIKK3JlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gWW91IGNhbid0
IHVzZSB0aGUgc2V0VmVyc2lvbiBmdW5jdGlvbiBpZiB5b3UndmUgYWxyZWFkeSBzZXQgdGhlIHZl
cnNpb24gdGhyb3VnaCBhbiBvcGVuIGNhbGwuICBUaGUgY3VycmVudCBpbnRlZ2VyIHZlcnNpb24g
aXMgMgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3Jl
cXVlc3Qub25lcnJvciA9IGVycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24KKworZXJyb3JXaGVuVHJ5
aW5nTG93VmVyc2lvbigpOgorcmVxdWVzdC53ZWJraXRFcnJvck1lc3NhZ2UgPSBUaGUgcmVxdWVz
dGVkIHZlcnNpb24gKDEpIGlzIGxlc3MgdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbiAoMikuCity
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA0KQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBzZWNvbmRVcGdyYWRlTmVlZGVkCityZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1
Y2Nlc3MKKworc2Vjb25kVXBncmFkZU5lZWRlZCgpOgorZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9
IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24g
aXMgNAorCit0aGlyZE9wZW5TdWNjZXNzKCk6CitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQg
aXMgdHJ1ZQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgNAor
ZGIuY2xvc2UoKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25z
dWNjZXNzID0gZm91cnRoT3BlblN1Y2Nlc3MKKworZm91cnRoT3BlblN1Y2Nlc3MoKToKK2RiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDQKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50
eHQKaW5kZXggYmFjM2NjZjJjMzRiZmYwOTQ5NDNlNjEzZmEwZGI2Mzg3ZGZiYTM5NC4uYmM3MjMz
NjFjMDg4YWIxOTVlMDczZDliMzA5ODM3ODU5ZGVjMzhlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0
ZWQudHh0CkBAIC0xMSwxNSArMTEsNDIgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIp
CiAKK2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRF
dmVudCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1Zl
cnNpb24gaXMgMgorUEFTUyBTdHJpbmcoZXZlbnQpIGlzICJbb2JqZWN0IElEQlZlcnNpb25DaGFu
Z2VFdmVudF0iCisKIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVw
Z3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJz
dFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVy
CiBQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgogcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKIAordmVyc2lvbkNoYW5nZUhhbmRsZXIo
KToKK3Nhd1ZlcnNpb25DaGFuZ2VFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVy
c2lvbmNoYW5nZSIKK1BBU1MgU3RyaW5nKGV2ZW50KSBpcyAiW29iamVjdCBJREJWZXJzaW9uQ2hh
bmdlRXZlbnRdIgorUEFTUyBldmVudC50YXJnZXQgaXMgY29ubmVjdGlvbjEKK1BBU1MgZXZlbnQu
b2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworCitibG9ja2VkRXZl
bnRIYW5kbGVyKCk6CitQQVNTIHNhd1ZlcnNpb25DaGFuZ2VFdmVudCBpcyB0cnVlCitnb3RCbG9j
a2VkRXZlbnQgPSB0cnVlCitQQVNTIFN0cmluZyhldmVudCkgaXMgIltvYmplY3QgSURCVmVyc2lv
bkNoYW5nZUV2ZW50XSIKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5l
d1ZlcnNpb24gaXMgMworUEFTUyBldmVudC50eXBlIGlzICJibG9ja2VkIgorY29ubmVjdGlvbjEu
Y2xvc2UoKQorCitzZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnRIYW5kbGVyKCk6CitQQVNTIGdvdEJs
b2NrZWRFdmVudCBpcyB0cnVlCitnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCisK
IHNlY29uZFN1Y2Nlc3NDYWxsYmFjaygpOgotRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZl
bnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290U2Vjb25kVXBncmFkZU5lZWRl
ZEV2ZW50IGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4
dAppbmRleCBjMDYwOWVlNGMwNWExZTdkYTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwLi41NTFmOGQ4
NmViNmU3NzZkZTYzMTg4YTlhYTAzMTM1MDA4ZWNiNmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTAsMTEgKzEwLDI3IEBAIGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCA3KQogCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
UEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvYmplY3Rz
dG9yZScpCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2Fj
dGlvbi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK3NldFRpbWVv
dXQoY2xvc2VEQiwgMCkKKwogb3BlblN1Y2Nlc3MoKToKIFBBU1MgZGlkQ2FsbENsb3NlREIgaXMg
ZmFsc2UKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlciku
IFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9i
amVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDEKK2RiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0b3Jl
TmFtZXMpCisKK2Nsb3NlREIoKToKK2RpZENhbGxDbG9zZURCID0gdHJ1ZQorZGIuY2xvc2UoKQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dAppbmRleCBlNjVlZGIyNGJk
ZDZlMjE5NzMyNTI0YzExOTU4YmUyNDBjOTNmOGNhLi5jM2Y4MDk2ZTlmNGRjYjM2ZTQ2NTEyM2U4
Mzg0NWJmNDlmZTJhZDEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1l
eHBlY3RlZC50eHQKQEAgLTksMTQgKzksMjQgQEAgZGJuYW1lID0gImludHZlcnNpb24tY2xvc2Ut
aW4tb25jb21wbGV0ZS5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2Ri
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdvcycpCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2Fj
dGlvbgorCit0cmFuc2FjdGlvbi5vbmNvbXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9
IHRydWUKK2RiLmNsb3NlKCkKKwogb3BlblN1Y2Nlc3MoKToKLUZBSUwgc2F3VHJhbnNhY3Rpb25D
b21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNv
bXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9u
IHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BB
U1MgZGIudmVyc2lvbiBpcyA3CiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignb3MnLCAncmVhZHdyaXRlJykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0
aHJvd24uCi1GQUlMIGNvZGUgc2hvdWxkIGJlIDExLiBXYXMgOC4KLUZBSUwgZW5hbWUgc2hvdWxk
IGJlIEludmFsaWRTdGF0ZUVycm9yLiBXYXMgTm90Rm91bmRFcnJvci4KK1BBU1MgY29kZSBpcyBE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0
ZUVycm9yJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNs
b3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApp
bmRleCA2NWVkODVkNDgxOWRkMDBhM2UwZTM0YWM5YzQ0ZDI5Y2M0ZGExZDBiLi4xOGYzM2I4YjQ2
ZTJlYjU0MmNjYjk0ODE4OTFjYmVhODNkYWUwMzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTEwLDEyICsxMCwyMiBAQCBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgNykKIAogCit1cGdyYWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3Cit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29zJykKK2RiLmNsb3NlKCkKKwordHJh
bnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCisKIG9w
ZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogdHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKQotRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9N
IElEQkRhdGFiYXNlIEV4Y2VwdGlvbiA4CitGQUlMIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ29zJykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIElE
QkRhdGFiYXNlIEV4Y2VwdGlvbiAxMQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQK
aW5kZXggZWYxNTNkMGQ5NGUyMDhjMWYzYTRlYTRjYmI2ZWRhODVjOTdiM2I4OS4uNTI4YmU3NjFh
MjllMjA5YTMwN2E0YWNkMzYzMWYxOTQ4NThjMzAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24t
ZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtNDYsNiArNDYsMTAgQEAgY29ubmVjdGlvbjEuY2xvc2Uo
KQogCiBkZWxldGVEYXRhYmFzZVN1Y2Nlc3NDYWxsYmFjaygpOgogCit1cGdyYWRlTmVlZGVkQ2Fs
bGJhY2soKToKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAxCitQQVNTIGV2ZW50Lm9sZFZlcnNp
b24gaXMgMAorCiBvcGVuV2l0aFZlcnNpb25TdWNjZXNzQ2FsbGJhY2soKToKIFBBU1MgZXZlbnQu
dGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52
YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IGU3
NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1NGZmZTUzZjZiOWNhNTguLmQyOGNjN2ZkMDExOWI2NzEw
M2JkMzljMTYwZGM5YzQ3ZmQxMzg4ZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVj
dHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0
CkBAIC0xMSw4ICsxMSwxMyBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVs
ZXRlU3VjY2VzcygpOgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmly
c3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2soKToKK2dvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0g
dHJ1ZQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBp
cyAyCisKIGZpcnN0U3VjY2Vzc0V2ZW50SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVwZ3JhZGVO
ZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJzdFVwZ3Jh
ZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
IGNvbm5lY3Rpb24xLm9udmVyc2lvbmNoYW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2Fs
bGJhY2sKIFBBU1MgU3RyaW5nKGNvbm5lY3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0i
CkBAIC0yNCw3ICsyOSwxMyBAQCByZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpCiBy
ZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJzaW9uRXJyb3IKIHJlcXVlc3Qub25zdWNjZXNzID0gdW5l
eHBlY3RlZFN1Y2Nlc3NDYWxsYmFjawogcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxv
Y2tlZENhbGxiYWNrCi1GQUlMIG9udmVyc2lvbmNoYW5nZSBjYWxsZWQgdW5leHBlY3RlZGx5CisK
K3NldFZlcnNpb25FcnJvcigpOgorT3BlbiB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBj
b25uZWN0aW9uMSB3ZXJlIHRvIGdldCBhIHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUg
ZGVsaXZlcmVkIGJlZm9yZSB0aGUgdGVzdCBmaW5pc2hlcworbmV3X2RiID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lICsgJzInKQorbmV3X2RiLm9uc3VjY2VzcyA9IG5ld0RCU3VjY2VzcworCituZXdE
QlN1Y2Nlc3MoKToKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKaW5kZXggNjk5MjA5YWY3N2QzMWEy
YWVkY2JmYTRkNDMxYjkzZGIxYWUxMTJkZC4uY2VmZjA5NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZh
MTMyMDFiMzY3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0CkBAIC02NSw4ICs2
NSwxMyBAQCBGQUlMIGV2ZW50Lm9sZFZlcnNpb24gc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgdW5k
ZWZpbmVkCiBGQUlMIGV2ZW50Lm5ld1ZlcnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2Jq
ZWN0KS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgogUEFTUyBldmVudC50YXJn
ZXQucmVzdWx0IGlzIG51bGwKIAordXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RVcGdyYWRl
TmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVu
dC5vbGRWZXJzaW9uIGlzIDAKKwogb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6Ci1G
QUlMIGdvdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFT
UyBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0
Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRl
eCAzMzcwY2FkMDA0NzE2YzNkNDljOWI4NWIxNWY4NmE5ZDk5Y2VhZGRiLi45MDU0NzhkZGU0ODcy
MjgzMmM4MTBjMmQ2OTNiZDI2MTkyMzg5YWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12
ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAtMTMsMTcgKzEzLDMzIEBAIFNob3VsZCB0cmlnZ2VyOgog
NC4xLjc6IElmIHRoZSB2ZXJzaW9uIG9mIGRiIGlzIGxvd2VyIHRoYW4gdmVyc2lvbiwgdGhlbiBy
dW4gdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIHVz
aW5nIGNvbm5lY3Rpb24sIHZlcnNpb24sIHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suCiA0
LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24uCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1l
LCA3KQotRkFJTCBTdHJpbmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVx
dWVzdF0uIFdhcyBbb2JqZWN0IElEQlJlcXVlc3RdLgorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMg
IltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iCiAKK1BBU1MgSW4gdGhlIHVwZ3JhZGVuZWVkZWQg
ZXZlbnQgaGFuZGVyOgorVGVzdCA0LjguOS4xOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQ
QVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgorVGVzdCA0LjguOS4zOgor
UEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitQ
QVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzICJkb25lIgorVGVzdCA0LjEuNDoKK1BBU1Mg
ZGIubmFtZSBpcyBkYm5hbWUKK1BBU1MgZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMubGVuZ3RoIGlzIDAKK3RyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0
aW9uCitQQVNTIFN0cmluZyh0cmFuc2FjdGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rpb25d
Igorb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZU9TIikKK3Nhd1RyYW5zYWN0aW9uQ29t
cGxldGUgPSB0cnVlCiAKIG9wZW5TdWNjZXNzKCk6CiBUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lv
bmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMgcnVuLgotRkFJTCBzYXdVcGdyYWRlTmVlZGVkIHNob3Vs
ZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VXBncmFkZU5lZWRlZCBpcyB0cnVlCitQQVNT
IHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CiBLaW5kIG9mIHRlc3QgNC4xLjk6CiBQQVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdh
cyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2Vk
LmpzCmluZGV4IDNkMThkY2E3NzUxZGNjOTcwNDA1ODMxMzdkODI3MzkzN2U5YjU5NDguLjI0ZTU5
N2RiOGI2ZmFjYjJiMDU3OTQ2MWYyOTU2MzczOTI1MmY2ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxv
Y2tlZC5qcwpAQCAtMzAsNyArMzAsNyBAQCBmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWRDYWxs
YmFjayhldnQpCiAgICAgZXZhbEFuZExvZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0
cnVlIik7CiAgICAgc2hvdWxkQmUoImV2ZW50Lm9sZFZlcnNpb24iLCAiMCIpOwogICAgIHNob3Vs
ZEJlKCJldmVudC5uZXdWZXJzaW9uIiwgIjIiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
IlN0cmluZyhldmVudCkiLCAiW29iamVjdCBJREJVcGdyYWRlTmVlZGVkRXZlbnRdIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVmVyc2lv
bkNoYW5nZUV2ZW50XSIpOwogfQogCiBnb3RCbG9ja2VkRXZlbnQgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158726</attachid>
            <date>2012-08-16 00:06:46 -0700</date>
            <delta_ts>2012-08-16 17:48:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120816000612.patch</filename>
            <type>text/plain</type>
            <size>85441</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThmNTcwMTU3OTJlNzA1
ZmIwYzkyZjFlMWFkMjc2NzVjN2Q3MTlkNC4uNTU2Y2JhNTM2YmM5YWNkZjk2NDU2NzM1YmY3YjEy
NDk4MjE5OWEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgV2Ug
bm93IHRha2UgYSBwb2ludGVyIHRvIHRoZSBvcGVuREJSZXF1ZXN0IGlmIHRoaXMgaXMgYSB2ZXJz
aW9uCisgICAgICAgIGNoYW5nZSB0cmFuc2FjdGlvbiBhcyBhIHJlc3VsdCBvZiBhbiBvcGVuLXdp
dGgtdmVyc2lvbiBjYWxsIHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGNsZWFyIHRoZSB0cmFuc2Fj
dGlvbiBwcm9wZXJ0eSBvbiB0aGUgb3BlbkRCUmVxdWVzdCBhcyBzb29uIGFzIHRoZQorICAgICAg
ICB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIGRpc3BhdGNoZWQgcGVyIHRoZSBzcGVjICgiLi4uIHNl
dCByZXF1ZXN0J3MKKyAgICAgICAgdHJhbnNhY3Rpb24gcHJvcGVydHkgdG8gbnVsbC4uLiAiLCBj
dXJyZW50bHkgNC44LjEyKS4KKworICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6fklEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0xNSAgQWxlYyBGbGV0dCAgPGFs
ZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBnZW5lcmF0ZSBpbmRl
eCBrZXlzIGZvciBleGlzdGluZyBkYXRhIGluIGNyZWF0ZUluZGV4IGluIGZyb250IGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxZjJiYTZlNGRhMTUxYjA5NzY0MmM0Mzc4ZWZhODE2
NzE2MTkwYzE5Li4zNzZkNGYwMzEyNGYxMmNiYmY4YmM5OTc3OTRmNzZlZDllODIyZTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE0ICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZy
b250ZW5kIGFuZCBwbHVtYmluZyBmb3IgaW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBn
cmFkZU5lZWRlZCk6CisgICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAg
IChJREJDYWxsYmFja3NQcm94eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZl
cnNpb24pOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHkuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAq
IHNyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRmFj
dG9yeUJhY2tlbmRQcm94eTo6b3Blbik6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURC
VHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZSk6CisgICAgICAgICogc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJ
bXBsOjpXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJh
Y2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkgYWdhaW4gaWYgd2UndmUgYWxyZWFkeQorICAgICAgICBjcmVh
dGVkIGl0IGR1cmluZyB1cGdyYWRlTmVlZGVkLiAgVGhpcyBtYWtlcworICAgICAgICBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kKSByZXVzZSBpdHMgcHJldmlvdXMKKyAg
ICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIGlmIGl0IGhhcyBvbmUuCisKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5l
ZWRlZCk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdl
YklEQkNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkRhdGFiYXNlSW1wbDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6
b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJ
REJGYWN0b3J5SW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1w
bDo6b25Db21wbGV0ZSk6CisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNl
QmFja2VuZFRlc3QuY3BwOgorCiAyMDEyLTA4LTE1ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IGdlbmVyYXRlIGluZGV4IGtleXMgZm9y
IGV4aXN0aW5nIGRhdGEgaW4gY3JlYXRlSW5kZXggaW4gZnJvbnQgZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYjk0ZmZlMDU2
MTMyYjAxMmYxZTRjY2VlOTBiYTlhZTRhNDIyNDRjYi4uMmEzOWNhYmZiMzk0ZDZjNmUyYjgzOWJj
N2MxMjg4Njg4MzY1Y2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIklEQk9iamVj
dFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0
aW9uLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiSURC
VmVyc2lvbkNoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAiSURCVmVyc2lvbkNoYW5nZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0zMDIsNiArMzAzLDE3
IEBAIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlQ29ubmVjdGlvbigpCiAgICAgfQogfQogCit2b2lk
IElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90
IG5ld1ZlcnNpb24pCit7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fY2xvc2VQZW5kaW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFkZU5lZWRlZEV2
ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnROYW1lcygpLnZlcnNpb25j
aGFuZ2VFdmVudCkpOworfQorCiB2b2lkIElEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMyNmE1ODgzZGNmMzk0NzNjYWExMDk3MjkwNWYz
ZmU2NzVlLi5hN2Q3MmNlMTk4ZjNlMGZkYWFkMGNhM2YzMGY4NmM0ZWYzN2E3MmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTc4LDYg
Kzc4LDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodmVy
c2lvbmNoYW5nZSk7CiAKICAgICAvLyBJREJEYXRhYmFzZUNhbGxiYWNrcworICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNp
b24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1
ZXN0ZWRWZXJzaW9uKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBs
LmNwcAppbmRleCBhMzEyNTFjOGQ2Mzc4NTBjZjg3YWQ4Y2E0YzJlOWVlMWE1YTI4ZWIwLi5mOWIx
YWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBs
LmNwcApAQCAtNDQ0LDEwICs0NDQsNiBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9w
ZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAKIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxi
YWNrcykKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiB3b24ndCBiZSByZWFjaGVkIHVu
dGlsIGl0J3MgZXhwb3NlZCB0byBzY3JpcHQgaW4KLSAgICAvLyB3YmsudWcvOTI4OTcuCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0KICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MgPSBwcnBDYWxsYmFja3M7CiAgICAgQVNTRVJUKGNhbGxiYWNrcyk7CiAgICAgZm9yIChEYXRh
YmFzZUNhbGxiYWNrc1NldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2RhdGFiYXNlQ2FsbGJhY2tz
U2V0LmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuZW5kKCk7ICsraXQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrcy5oCmluZGV4IDE2YTllYTZjNTA4YjBkOTJiNjFlNDk5N2M1NDMwMTMyYTZkMmFj
YWEuLmZhYTE2NmY3ZjUxMWZmNjY2NmYzOTczZGJiODQwNGI3ZjliNTIzZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3MuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VD
YWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3Qg
U3RyaW5nJiB2ZXJzaW9uKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShp
bnQ2NF90IGN1cnJlbnRWZXJzaW9uLCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0
X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCAxOTQxMmZjYmU1MGFi
NDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmLi5jZWI3YWYzMWYzZTIyNDg2MWUwNTA3NjIxMGZh
ZmM1YTA1OGRmMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTUyLDYgKzUyLDEy
IEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3Qg
U3RyaW5nJiB2ZXJzaW9uKQogICAgICAgICBtX2RhdGFiYXNlLT5vblZlcnNpb25DaGFuZ2UodmVy
c2lvbik7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFu
Z2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgaWYgKG1f
ZGF0YWJhc2UpCisgICAgICAgIG1fZGF0YWJhc2UtPm9uVmVyc2lvbkNoYW5nZShvbGRWZXJzaW9u
LCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OnVucmVn
aXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5o
CmluZGV4IGU4YjFmOTliODM4YWY3YjkzN2Q5NGI3YWY4ZjdmN2RmYjgyYmU3ZmIuLjAyYzhkZTBk
ZmU5ZjZlZmRlZDY4MDViN2JhYzkyMTc4ZmI4MDg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5o
CkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qg
b2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRh
YmFzZShJREJEYXRhYmFzZSopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBjZjUyY2MxZmUyYjEzNTViNmM1NGVk
Y2UyNjVlMGYzZThjM2E1ZTkxLi5jODNiYTM2NDVkYmY2ZDM5ODNjOWNjYTdkN2IzN2FiMTUwNzcy
YjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
LmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5kSW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKLSNp
bmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMTA1LDcgKzEwNSw3IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1
ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBpZiAobmFtZS5pc051bGwoKSkgewogICAgICAgICBlYyA9IE5BVElWRV9UWVBFX0VSUjsK
QEAgLTExNCwxMSArMTE0LDE2IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6
b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTCiAgICAgaWYgKCFp
c0NvbnRleHRWYWxpZChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8
SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6
OmNyZWF0ZSh0aGlzKSwgMCk7Ci0gICAgbV9iYWNrZW5kLT5vcGVuKG5hbWUsIHJlcXVlc3QsIGNv
bnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0
aChjb250ZXh0KSk7CisgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJP
cGVuREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIHZlcnNp
b24pOworICAgIG1fYmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9uLCByZXF1ZXN0LCBjb250ZXh0
LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29u
dGV4dCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitQYXNzUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gb3Bl
bihjb250ZXh0LCBuYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGVjKTsK
K30KKwogUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gSURCRmFjdG9yeTo6ZGVs
ZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDQ2
MTFjYjZjNGZlODM5OTBiNDcyNGE0M2JmMDljOWE1YTk1ZDg4OGQuLjM2NDViYjgxZGM3ZWU5NjY5
MDVkYTY1MmMwNjRkYTczODZmNjUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgotI2lu
Y2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01OCw3ICs1OCw4IEBAIHB1YmxpYzoKIAogICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBh
c3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGludDY0X3QgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHNob3J0
IGNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQs
IEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5pZGwKaW5kZXggMDM4OWViMmFhZTdlMTI5OTU0ZDlhY2YwM2E1OWZmYmNjN2Zi
YWFjYy4uYmY3MWEyZGQyNWQxZmY5NWUyNjQzNWY0ZTQxZjBjNDFiOTc2NzJjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKQEAgLTMwLDcg
KzMwLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIF0gSURCRmFjdG9yeSB7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPWdldERhdGFiYXNl
TmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1lcygpOwogCi0gICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3Ry
aW5nIG5hbWUpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJP
cGVuREJSZXF1ZXN0IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUsIGluIFtPcHRpb25hbF0gdW5zaWdu
ZWQgbG9uZyBsb25nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhj
ZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlZl
cnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGluIERPTVN0cmluZyBuYW1lKQogICAg
ICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNw
cAppbmRleCA2M2JkNDc4M2U1NGFlMzFmNGQ0OTU5NmYzYjYwZDlhZjgyNTRjOWRjLi44ZGE1YzAy
ZTQyM2Y2ZjY0ZTU3OTczMGRiNzNmYTI5ZWMyYmU0NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAK
QEAgLTE1MCwxMCArMTUwLDggQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkZhY3Rv
cnlCYWNrZW5kSW1wbDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVmUHRyPFMKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBwcnBTZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgZGF0YURpcmVjdG9yeSkKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwcnBTZWN1cml0
eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcmVj
dG9yeSkKIHsKLSAgICAvLyBGSVhNRTogTWFrZSB0aGlzIGEgcGFyYW1ldGVyIGFuZCBwbHVtYiB0
aHJvdWdoIGZyb20gamF2YXNjcmlwdC4KLSAgICBpbnQ2NF90IHZlcnNpb24gPSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpOb0ludFZlcnNpb247CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbiA9IHBycFNlY3VyaXR5T3JpZ2luOwogICAgIGNvbnN0IFN0cmluZyB1bmlxdWVJ
ZGVudGlmaWVyID0gY29tcHV0ZVVuaXF1ZUlkZW50aWZpZXIobmFtZSwgc2VjdXJpdHlPcmlnaW4u
Z2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCmluZGV4IGNhMWQwNTI4MmE4YzVlZGY3NjZkNWU1NTUw
OGZhZTBhOWMwNDhjNjUuLmNhZDNiNWEyNGIyOTlhOTI5OWMyYWQyOTRlM2IyZWEwNGNmZDcyYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlSURCQmFja2luZ1N0b3JlKGNvbnN0IFN0cmluZyYgZmlsZUlkZW50aWZpZXIp
OwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oCmluZGV4IDQ0ZjVjNzg2ZWYyMWVhNDcxOWY2MzY5NDI5Zjc2NzM5
MDA0MDkyOTMuLjRlYTVkOGEzMzBmZDA0MWFmNTFjYjJhOTU0NGVhNDhhY2Y2NjZmZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQ4NDk0ODhmODQxM2M2NGU1MjgxOTIyY2RkY2U3NThmMjRmMDQwMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
CisjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rp
b25Nb25pdG9yLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRlZEV2ZW50LmgiCisjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bh
c3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGlu
dDY0X3QgdmVyc2lvbikKK3sKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdChh
ZG9wdFJlZihuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBzb3VyY2UsIHZlcnNpb24pKSk7
CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVs
ZWFzZSgpOworfQorCitJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0
X3QgdmVyc2lvbikKKyAgICA6IElEQlJlcXVlc3QoY29udGV4dCwgc291cmNlLCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRhc2ssIDApCisgICAgLCBtX3ZlcnNpb24odmVy
c2lvbikKK3sKKyAgICBBU1NFUlQoIW1fcmVzdWx0KTsKK30KKworSURCT3BlbkRCUmVxdWVzdDo6
fklEQk9wZW5EQlJlcXVlc3QoKQoreworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIElEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVz
KCkuaW50ZXJmYWNlRm9ySURCT3BlbkRCUmVxdWVzdDsKK30KKwordm9pZCBJREJPcGVuREJSZXF1
ZXN0OjpvbkJsb2NrZWQoaW50NjRfdCBvbGRWZXJzaW9uKQoreworICAgIGlmICghc2hvdWxkRW5x
dWV1ZUV2ZW50KCkpCisgICAgICAgIHJldHVybjsKKyAgICBlbnF1ZXVlRXZlbnQoSURCVXBncmFk
ZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5hbWVzKCku
YmxvY2tlZEV2ZW50KSk7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVl
ZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IHBycFRyYW5zYWN0aW9uQmFja2VuZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+IHBycERhdGFiYXNlQmFja2VuZCkKK3sKKyAgICBpZiAoIXNob3VsZEVu
cXVldWVFdmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZUJhY2tlbmQgPSBwcnBEYXRhYmFzZUJhY2tlbmQ7Cisg
ICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25CYWNr
ZW5kID0gcHJwVHJhbnNhY3Rpb25CYWNrZW5kOworICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRi
RGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
ZGF0YWJhc2VCYWNrZW5kKTsKKworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gZnJvbnRlbmQg
PSBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdHJhbnNh
Y3Rpb25CYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0UsIGlkYkRhdGFiYXNl
LmdldCgpLCB0aGlzKTsKKyAgICB0cmFuc2FjdGlvbkJhY2tlbmQtPnNldENhbGxiYWNrcyhmcm9u
dGVuZC5nZXQoKSk7CisgICAgbV90cmFuc2FjdGlvbiA9IGZyb250ZW5kOworICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUoaWRiRGF0YWJhc2UucmVsZWFzZSgpKTsKKworICAgIGlmIChvbGRW
ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikgeworICAgICAgLy8g
VGhpcyBkYXRhYmFzZSBoYXNuJ3QgaGFkIGFuIGludGVnZXIgdmVyc2lvbiBiZWZvcmUuCisgICAg
ICBvbGRWZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb247Cisg
ICAgfQorICAgIGVucXVldWVFdmVudChJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRW
ZXJzaW9uLCBtX3ZlcnNpb24sIGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpKTsKK30K
KworYm9vbCBJREJPcGVuREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdAorewor
ICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcg
fHwgbV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIGlmIChtX3JlcXVlc3RBYm9ydGVkKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzhmNjMxNTc1YWFjODg1MWQ4
MDU2MzViOGU1NDQwZjBlZGUyOGIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIElEQk9wZW5EQlJlcXVlc3RfaAorI2RlZmluZSBJREJPcGVuREJSZXF1ZXN0
X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCUmVxdWVz
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQk9wZW5EQlJlcXVlc3QgOiBw
dWJsaWMgSURCUmVxdWVzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT3Bl
bkRCUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QkFueT4gc291cmNlLCBpbnQ2NF90IHZlcnNpb24pOworICAgIHZpcnR1YWwgfklEQk9wZW5EQlJl
cXVlc3QoKTsKKworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1Zl
cnNpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQoaW50NjRf
dCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4s
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgT1ZFUlJJREU7CisKKyAg
ICAvLyBFdmVudFRhcmdldAorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZh
Y2VOYW1lKCkgY29uc3Q7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGJs
b2NrZWQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodXBncmFkZW5lZWRl
ZCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkg
Y29uc3QgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgSURCT3BlbkRCUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJz
aW9uKTsKKworICAgIGludDY0X3QgbV92ZXJzaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBJ
REJPcGVuREJSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU0NmE1MmUxNTA0ZjFmNTNi
NDg0YjVjM2RjNjY4MmIxMTkzMWMxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAorICAgICAgICBBY3RpdmVET01PYmplY3QsCisgICAg
ICAgIEV2ZW50VGFyZ2V0CisgICAgXSBJREJPcGVuREJSZXF1ZXN0IDogSURCUmVxdWVzdCB7Cisg
ICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmxvY2tlZDsKKyAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb251cGdyYWRlbmVlZGVkOworICAgIH07Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGZhMWM2Njcz
NGQ0ZWZiNmU5YjhmOTMwZGM0NTEwOTk3Njg0ZWU0NGIuLmE2MzMzOWYyYTIzOWFhMzM5ZDMyNDkx
NDJhYTAyY2IyMDQ2Yzc4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC02MCwxNiArNjAsMTggQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1IKIAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U6OlRhc2tUeXBlIHRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24p
CiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAsIG1fcmVzdWx0KDAp
CiAgICAgLCBtX2Vycm9yQ29kZSgwKQotICAgICwgbV9zb3VyY2Uoc291cmNlKQotICAgICwgbV90
YXNrVHlwZSh0YXNrVHlwZSkKKyAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBt
X3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICwgbV9yZWFkeVN0YXRlKFBFTkRJTkcpCiAg
ICAgLCBtX3JlcXVlc3RBYm9ydGVkKGZhbHNlKQotICAgICwgbV9jb250ZXh0U3RvcHBlZChmYWxz
ZSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fdGFza1R5cGUodGFza1R5cGUpCiAg
ICAgLCBtX2N1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNv
clR5cGUpCiAgICAgLCBtX2N1cnNvckRpcmVjdGlvbihJREJDdXJzb3I6Ok5FWFQpCiAgICAgLCBt
X3BlbmRpbmdDdXJzb3IoMCkKKyAgICAsIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudChmYWxz
ZSkKIHsKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBtX3RyYW5zYWN0aW9uLT5y
ZWdpc3RlclJlcXVlc3QodGhpcyk7CkBAIC0yODUsMTAgKzI4NywxNSBAQCB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gYmFj
a2VuZCkKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGJhY2tlbmQpOworICAgIFJlZlB0cjxJREJEYXRh
YmFzZT4gaWRiRGF0YWJhc2U7CisgICAgaWYgKG1fcmVzdWx0KSB7CisgICAgICAgIGlkYkRhdGFi
YXNlID0gbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCk7CisgICAgICAgIEFTU0VSVChpZGJEYXRhYmFz
ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWRiRGF0YWJhc2UgPSBJREJEYXRhYmFzZTo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7CisgICAgICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUoaWRiRGF0YWJhc2UuZ2V0KCkpOworICAgIH0KICAgICBpZGJEYXRh
YmFzZS0+cmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcygpOwotCi0gICAgbV9yZXN1bHQgPSBJREJB
bnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5yZWxlYXNlKCkpOwogICAgIGVucXVldWVFdmVudChjcmVh
dGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTQ2MywxMSArNDcwLDEyIEBAIGJvb2wgSURCUmVx
dWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICB9CiAKICAg
ICAvLyBGSVhNRTogV2hlbiB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlzcGF0Y2hpbmcsIHRoaXMg
d2lsbCBwcm9iYWJseSBuZWVkIHRvIGNoYW5nZS4KLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCBldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmJsb2NrZWRFdmVudCwgImV2ZW50IHR5cGUgd2FzICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBjb25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZl
ID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vz
c0V2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1f
ZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CisgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNz
RXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBl
dmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGNvbnN0IGJvb2wgc2V0
VHJhbnNhY3Rpb25BY3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
dXBncmFkZW5lZWRlZEV2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50ICYmIG1fZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRf
RVJSKSk7CiAKICAgICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPnNldEFjdGl2ZSh0cnVlKTsKKwogICAgIGJvb2wgZG9udFByZXZlbnREZWZhdWx0ID0g
SURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CiAgICAg
aWYgKHNldFRyYW5zYWN0aW9uQWN0aXZlKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3Rp
dmUoZmFsc2UpOwpAQCAtNDc1LDYgKzQ4MywxMSBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNo
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90aWZ5KQog
ICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKIAor
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQp
IHsKKyAgICAgICAgQVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAg
ICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIGlmICht
X3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJvcnRlZCkg
ewogICAgICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CkBAIC01MDEs
NiArNTE0LDE2IEBAIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFu
ZGxlcigpCiAgICAgfQogfQogCit2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNo
QW5kRGlzcGF0Y2goKQoreworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uKTsKKyAgICBBU1NFUlQo
bV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkpOworICAgIEFTU0VSVChtX3JlYWR5U3Rh
dGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAg
bV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7Cit9CisK
IHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
ewogICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0g
RE9ORSk7CkBAIC01MDgsNyArNTMxLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRShtX3JlYWR5U3RhdGUgPT0gUEVORElORywgIldoZW4gcXVldWVpbmcgZXZlbnQg
JXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIG1fcmVhZHlTdGF0ZSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3Rh
dGUgPT0gUEVORElORyB8fCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQsICJXaGVuIHF1ZXVl
aW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgd2FzICVkIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBtX3JlYWR5U3RhdGUpOwogCiAgICAgRXZlbnRRdWV1ZSogZXZlbnRR
dWV1ZSA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+ZXZlbnRRdWV1ZSgpOwogICAgIGV2ZW50
LT5zZXRUYXJnZXQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmgKaW5kZXggNGE4NDI5MTk0NjJjZTY5NjVjZmY2MGExOGFhMGI2NmM4YzY5Y2Ix
Ny4uN2ExMjQ5NmFjNjk2MzZmMTA3YjMyM2NlZTQ4M2E0NGFhMGE3NTllNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAtOTEsNiArOTEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3Qg
VmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYs
IGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JikgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfSAvLyBOb3QgaW1wbGVtZW50ZWQuIENhbGxiYWNrIHNob3VsZCBub3Qg
cmVhY2ggdGhlIHJlbmRlcmVyIHNpZGUuCiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1
YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBPVkVSUklERTsKQEAgLTEwMyw2ICsx
MDQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+
IGV2ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gRXZlbnRUYXJnZXQ6OmRpc3BhdGNo
RXZlbnQoZXZlbnQsIGVjKTsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmNhdWdodEV4Y2VwdGlvbklu
RXZlbnRIYW5kbGVyKCk7CiAKKyAgICB2b2lkIHRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0
Y2goKTsKKwogICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNhbGxiYWNrcz46OnJl
ZjsKICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpkZXJlZjsK
IApAQCAtMTExLDEyICsxMTQsMTYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIElEQlJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUsIElEQlRyYW5zYWN0aW9uKik7
CiAgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwotICAgIGJvb2wgc2hv
dWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEVucXVldWVF
dmVudCgpIGNvbnN0OwogCiAgICAgUmVmUHRyPElEQkFueT4gbV9yZXN1bHQ7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgbV9lcnJvckNvZGU7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIFJl
ZlB0cjxET01FcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fY29udGV4dFN0b3BwZWQ7CisgICAg
UmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOworICAgIFJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlOworICAgIGJvb2wgbV9yZXF1ZXN0QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQg
YnkgdHJhbnNhY3Rpb24gdGhlbiByZWNlaXZlIGFzeW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBh
c3NlcnQuCiAKIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQKQEAgLTEzMCwxMSArMTM3LDcg
QEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIGNvbnN0IElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgbV90YXNrVHlwZTsKLSAgICBS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247CiAKLSAgICBSZWFkeVN0YXRlIG1f
cmVhZHlTdGF0ZTsKLSAgICBib29sIG1fcmVxdWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVk
IGJ5IHRyYW5zYWN0aW9uIHRoZW4gcmVjZWl2ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4g
YXNzZXJ0LgotICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZDsKICAgICBWZWN0b3I8UmVmUHRyPEV2
ZW50PiA+IG1fZW5xdWV1ZWRFdmVudHM7CiAKICAgICAvLyBPbmx5IHVzZWQgaWYgdGhlIHJlc3Vs
dCB0eXBlIHdpbGwgYmUgYSBjdXJzb3IuCkBAIC0xNDQsNiArMTQ3LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8SURCS2V5PiBtX2N1cnNvcktleTsKICAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnNv
clByaW1hcnlLZXk7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9jdXJzb3JW
YWx1ZTsKKyAgICBib29sIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudDsKIAogICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggY2IyOWQwMGY4ZDE4
YTAxYjlkNzIxZTA1MDUyZmMzZmQ0YjJkMmZjNC4uNTAyMTZmNmIzYTljOTg5NzlmYTY5N2M1OTgz
ZDA0MjliNTQxODI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIklEQklu
ZGV4LmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJPYmplY3RT
dG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIklEQlRy
YWNpbmcuaCIKIApAQCAtNDMsNyArNDQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSog
ZGIpCiB7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihhZG9wdFJlZihu
ZXcgSURCVHJhbnNhY3Rpb24oY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIpKSk7CisgICAgSURC
T3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCA9IDA7CisgICAgcmV0dXJuIGNyZWF0ZShjb250
ZXh0LCBiYWNrZW5kLCBtb2RlLCBkYiwgb3BlbkRCUmVxdWVzdCk7Cit9CisKK1Bhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYiwgSURC
T3BlbkRCUmVxdWVzdCogb3BlbkRCUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b24+IHRyYW5zYWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBiYWNr
ZW5kLCBtb2RlLCBkYiwgb3BlbkRCUmVxdWVzdCkpKTsKICAgICB0cmFuc2FjdGlvbi0+c3VzcGVu
ZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLnJlbGVhc2UoKTsKIH0KQEAgLTc5
LDEwICs4NiwxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVh
ZFdyaXRlTGVnYWN5KCkKIH0KIAogCi1JREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUsIElEQkRh
dGFiYXNlKiBkYikKK0lEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRi
LCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KGNvbnRleHQsIHRoaXMpCiAgICAgLCBtX2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fZGF0YWJh
c2UoZGIpCisgICAgLCBtX29wZW5EQlJlcXVlc3Qob3BlbkRCUmVxdWVzdCkKICAgICAsIG1fbW9k
ZShtb2RlKQogICAgICwgbV9hY3RpdmUodHJ1ZSkKICAgICAsIG1fc3RhdGUoVW51c2VkKQpAQCAt
Mzc3LDcgKzM4NSwxNCBAQCBib29sIElEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50KQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9t
IGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCiAg
ICAgQVNTRVJUKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbXBsZXRlRXZlbnQgfHwg
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7Ci0gICAgcmV0dXJuIElE
QkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goZXZlbnQuZ2V0KCksIHRhcmdldHMpOworICAgIGJv
b2wgcmV0dXJuVmFsdWUgPSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgp
LCB0YXJnZXRzKTsKKyAgICAvLyBGSVhNRTogVHJ5IHRvIGNvbnN0cnVjdCBhIHRlc3Qgd2hlcmUg
fHRoaXN8IG91dGxpdmVzIG9wZW5EQlJlcXVlc3QgYW5kIHdlCisgICAgLy8gZ2V0IGEgY3Jhc2gu
CisgICAgaWYgKG1fb3BlbkRCUmVxdWVzdCkgeworICAgICAgICBBU1NFUlQoaXNWZXJzaW9uQ2hh
bmdlKCkpOworICAgICAgICBtX29wZW5EQlJlcXVlc3QtPnRyYW5zYWN0aW9uRGlkRmluaXNoQW5k
RGlzcGF0Y2goKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCiBib29sIElE
QlRyYW5zYWN0aW9uOjpjYW5TdXNwZW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDFmN2FmN2RhZDFiZTk0OGY2
YjQxOTU3Zjc5ZTVmNjg3NDJiOTlhZjAuLjAwNWUzNzM2MzBhNGQyZmYyZWJhZmQ4MWVlMzZlYTBj
OTg5YTkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBJREJDdXJzb3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKIGNsYXNzIElEQk9iamVjdFN0b3JlOwor
Y2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKIAogY2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMg
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2
ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
LCBNb2RlLCBJREJEYXRhYmFzZSopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1
ZXN0Kik7CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb24oKTsKIAogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIG1vZGVSZWFkT25seSgpOwpAQCAtMTE5LDcgKzEyMSw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6ZGVyZWY7
CiAKIHByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0
YWJhc2UqKTsKKyAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFz
ZSosIElEQk9wZW5EQlJlcXVlc3QqKTsKIAogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+KTsKICAgICB2b2lkIGNsb3NlT3BlbkN1cnNvcnMoKTsKQEAgLTE0Miw2ICsxNDQs
NyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gbV9iYWNrZW5kOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICBJ
REJPcGVuREJSZXF1ZXN0KiBtX29wZW5EQlJlcXVlc3Q7CiAgICAgY29uc3QgTW9kZSBtX21vZGU7
CiAgICAgYm9vbCBtX2FjdGl2ZTsKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzk0MjAyODBlNDY0MGMyMTRjZTExYjE1OWIyMGE1ZmI3OGYzNzkyMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVw
Z3JhZGVOZWVkZWRFdmVudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKKworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IklEQkFueS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCVXBncmFk
ZU5lZWRlZEV2ZW50PiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShpbnQ2NF90IG9sZFZl
cnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJVcGdyYWRlTmVlZGVkRXZlbnQob2xkVmVy
c2lvbiwgbmV3VmVyc2lvbiwgZXZlbnRUeXBlKSk7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6SURCVXBncmFkZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdW
ZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKKyAgICA6IEV2ZW50KGV2ZW50
VHlwZSwgZmFsc2UgLypjYW5CdWJibGUqLywgZmFsc2UgLypjYW5jZWxhYmxlKi8pCisgICAgLCBt
X29sZFZlcnNpb24ob2xkVmVyc2lvbikKKyAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9uKQor
eworfQorCitJREJVcGdyYWRlTmVlZGVkRXZlbnQ6On5JREJVcGdyYWRlTmVlZGVkRXZlbnQoKQor
eworfQorCitpbnQ2NF90IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6b2xkVmVyc2lvbigpCit7Cisg
ICAgcmV0dXJuIG1fb2xkVmVyc2lvbjsKK30KKworaW50NjRfdCBJREJVcGdyYWRlTmVlZGVkRXZl
bnQ6Om5ld1ZlcnNpb24oKQoreworICAgIHJldHVybiBtX25ld1ZlcnNpb247Cit9CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgSURCVXBncmFkZU5lZWRlZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTc4NTY2NGYwMzg5YTFiMDQ1N2M4OWVjMzQxZmIwZWU5ZGYwZjRi
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElE
QlVwZ3JhZGVOZWVkZWRFdmVudF9oCisjZGVmaW5lIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9oCisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiSURCTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkFueTsKKworY2xhc3MgSURCVXBncmFkZU5lZWRlZEV2
ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJV
cGdyYWRlTmVlZGVkRXZlbnQ+IGNyZWF0ZShpbnQ2NF90IG9sZFZlcnNpb24gPSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBB
dG9taWNTdHJpbmcoKSk7CisgICAgdmlydHVhbCB+SURCVXBncmFkZU5lZWRlZEV2ZW50KCk7CisK
KyAgICB2aXJ0dWFsIGludDY0X3Qgb2xkVmVyc2lvbigpOworICAgIHZpcnR1YWwgaW50NjRfdCBu
ZXdWZXJzaW9uKCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNl
TmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIElEQlVwZ3JhZGVOZWVkZWRFdmVudChpbnQ2
NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUpOworCisgICAgaW50NjRfdCBtX29sZFZlcnNpb247CisgICAgaW50NjRfdCBtX25l
d1ZlcnNpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIElEQlVwZ3JhZGVOZWVkZWRFdmVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRl
TmVlZGVkRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjk5OTU0OGY0NjEyNmRmNmIxYjA2Njk4
MTAwMTVjNjJjMjdlYmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbApAQCAtMCwwICsxLDM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICAgICAgSW50ZXJmYWNlTmFtZT1JREJWZXJzaW9u
Q2hhbmdlRXZlbnQKKyAgICBdIElEQlVwZ3JhZGVOZWVkZWRFdmVudCA6IEV2ZW50IHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIG5ld1ZlcnNpb247Cisg
ICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzZjJlZjUyZTY4NGJiZTEzZDdmNjNhNGUxYWZm
NzgzMTM4ZDZkNjU2Li44MzMyMmZiZWM0Zjk2MmRkNTNiMDY3MGQzZmNiYjQxNzI1NzU1MjRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC04MjEsOCArODIxLDEwIEBACiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UmFuZ2UuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsJywK
KyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRs
JywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJ
bmRleGVkRGF0YWJhc2UuaWRsJywKQEAgLTE1MTQsNiArMTUxNiw4IEBACiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmgn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwJywKQEAgLTE1MjcsNiArMTUzMSw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAnLAogICAgICAgICAgICAg
J01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCcsCisgICAgICAg
ICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNmQwYTEwNTczOGRhOWU4MGE1YTgzMzk3
MDdiNDMxYWQ5MDIzZGEzMi4uYTJmYWVjMTI4MzRiYmE4NDg4Yzc0ZmZmM2RhZDg1MTU4MGY2MDkz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKHRleHRJbnB1dCkgXAogICAgIG1hY3JvKHVubG9hZCkgXAog
ICAgIG1hY3JvKHVwZGF0ZXJlYWR5KSBcCisgICAgbWFjcm8odXBncmFkZW5lZWRlZCkgXAogICAg
IG1hY3JvKHZlcnNpb25jaGFuZ2UpIFwKICAgICBtYWNybyh3ZWJraXR2aXNpYmlsaXR5Y2hhbmdl
KSBcCiAgICAgbWFjcm8od3JpdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggNWRh
NTdmZmM2Y2Y0MzI2N2E1ZWMzYmUzMzc1OTViNmNmZTU0ZjgyOC4uMjJhYWE3YjA3MGM0YmI0MmIx
NDJlMTFiZGM5YjM3OWI1N2M0NWY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTM5
LDYgKzM5LDcgQEAgU3RvcmFnZUV2ZW50CiBTVkdFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudCwg
Y29uZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZlbnQgY29uZGl0aW9uYWw9U1ZHCiBTVkdab29tRXZl
bnRzIGludGVyZmFjZU5hbWU9U1ZHWm9vbUV2ZW50LCBjb25kaXRpb25hbD1TVkcKK0lEQlVwZ3Jh
ZGVOZWVkZWRFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogVG91Y2hFdmVudCBjb25kaXRp
b25hbD1UT1VDSF9FVkVOVFMsIHJ1bnRpbWVDb25kaXRpb25hbD10b3VjaEVuYWJsZWQKIERldmlj
ZU1vdGlvbkV2ZW50IGNvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNmQ5NzJjMzk2ZDc2MzMyZTFhMGIyNjU3
MzFhZTNkYjhhNDlmMjFlOS4uNzkxYmQ0ZWRhNWNhMzdhZjQ1NzgzNjM0OTc3OTUxMzA3NGMyZDJm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC05LDYgKzks
NyBAQCBFdmVudFNvdXJjZQogRmlsZVJlYWRlciBjb25kaXRpb25hbD1CTE9CCiBGaWxlV3JpdGVy
IGNvbmRpdGlvbmFsPUZJTEVfU1lTVEVNCiBJREJEYXRhYmFzZSBjb25kaXRpb25hbD1JTkRFWEVE
X0RBVEFCQVNFCitJREJPcGVuREJSZXF1ZXN0IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
IElEQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVHJhbnNhY3Rpb24g
Y29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgY29u
ZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggMzJiMjliNTYzZDZhNTcyMWMx
MzUyYmZkNWE2NDMzOGYxYWI3NTIxNS4uZTE1YjMwZDllNDNmMTU1M2Q0MTVhODI0ZTRhMTU0NThm
YzQ2NDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfkluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgeyB9CisgICAgdmlydHVh
bCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVy
c2lvbikgeyB9CiBwcml2YXRlOgogICAgIEluc3BlY3RvcklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkg
eyB9CiB9OwpAQCAtMjM3LDcgKzIzOCw3IEBAIHByaXZhdGU6CiB2b2lkIEV4ZWN1dGFibGVXaXRo
RGF0YWJhc2U6OnN0YXJ0KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJGYWN0b3J5LCBT
ZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewogICAgIFJlZlB0cjxPcGVuRGF0
YWJhc2VDYWxsYmFjaz4gY2FsbGJhY2sgPSBPcGVuRGF0YWJhc2VDYWxsYmFjazo6Y3JlYXRlKHRo
aXMpOwotICAgIGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1lLCBjYWxsYmFjay5nZXQoKSwg
c2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKKyAgICBpZGJGYWN0b3J5LT5vcGVu
KGRhdGFiYXNlTmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBjYWxsYmFj
ay5nZXQoKSwgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIFN0cmluZygpKTsKIH0KIAogc3RhdGlj
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbkZv
ckRhdGFiYXNlKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSogaWRiRGF0YWJhc2UsIGNvbnN0
IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdkMmM5Y2Y5OWMxMjNmMDlhNDQxNDMzZjkw
MDgwMDI0Y2QwOTc4YjEuLjE5M2JmMmI1ZjZjNjY2YzdiZDUwNjJhZDQ0NzQ0MTViZmIzMDQyOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5j
cHAKQEAgLTEzMCw2ICsxMzAsMTYgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2Vk
KCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tz
UHJveHk6Om9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikKK3sKKyAgICBtX2NhbGxi
YWNrcy0+b25CbG9ja2VkKGV4aXN0aW5nVmVyc2lvbik7Cit9CisKK3ZvaWQgSURCQ2FsbGJhY2tz
UHJveHk6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlKQoreworICAgIG1fY2FsbGJhY2tzLT5v
blVwZ3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFu
c2FjdGlvbiksIG5ldyBXZWJJREJEYXRhYmFzZUltcGwoZGF0YWJhc2UpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDRj
NzBiNjY2ZWFjODEzZjliOThlY2Y4NzJlNzhjZDI0ODZkNjdlMWEuLjgyNTc1OGFhZGU5M2Y0MWYy
NjI5MzAzNjhiZDk2NjYwZmU1MmE1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5S2V5LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0
Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcyk7CiAgICAg
dmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOworICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoaW50
NjRfdCBleGlzdGluZ1ZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQo
aW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPik7CiAKIHByaXZhdGU6CiAgICAgSURCQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxX
ZWJJREJDYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjky
NjkzMGQwZGU1MGUwZWUyZDExNzg1Yi4uMDE5ZTU5YmEwNjFmMGZiODRlM2E5M2FiODk1ZmJhOWJl
ZDVkMWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKQEAgLTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHk6On5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9p
ZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRW
ZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lv
bkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30KKwogdm9pZCBJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJz
aW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UocmVxdWVzdGVkVmVyc2lv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5LmgKaW5kZXggYWZmZGNlNzdkNWQ5NThkYzAwZTBmNmY4MGFjZmZiODAxMjk1
OGIzYi4uOTk5NWFiZDJiNmFkOWQwMjRlMTUyZjEwZDBlZTYwMzFjODVjM2M1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiBwcml2YXRl
OgogICAgIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJG
YWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBjMWJlYzEwNzdkNmJjZjQ4N2U5OTQxZTBlZDIx
YzZjYmM2MTg2MDE5Li5iYWJjYmFlMTg0MDljNWRkMjU5MmMwZGZkOTIzMzI2ZmJmNjBlOTRhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94
eTo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhCiB9
CiAKIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgZGF0YURpcikKK3ZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJh
Y2tzKTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiBvcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwpAQCAt
MjExLDcgKzIxMSw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0KTsKLSAg
ICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7CisgICAgbV93ZWJJREJGYWN0b3J5
LT5vcGVuKG5hbWUsIHZlcnNpb24sIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyks
IG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwogfQogCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5k
UHJveHk6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
ZGF0YURpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3Rv
cnlCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuaAppbmRleCAyMmE2ZjUyYTg2OTgxNmM4MDU2NjhkNjg0ZDBhN2JmZmZjMjZh
ZTY5Li5jMGRlOTEwYTkyY2RlYTkxYTNkM2ExYzUzMGEyODA3YzVhYmZhYTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFBy
b3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2
ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2Uo
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXgg
MDgzZGJjY2JlMjY3NWYyMDk5YjUzNTU3ZjQwMTY4ZTNlMDgzZDc2Ny4uMmNiOTBlYTQ2ZTYzYWFh
NjUyODM5NjVhMWM0ZmVlNGMwOTUyMGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYklEQkNhbGxiYWNrc0ltcGw6OldlYklEQkNhbGxiYWNrc0ltcGwo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICA6IG1fY2FsbGJhY2tzKGNh
bGxiYWNrcykKKyAgICAsIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eShmYWxzZSkKIHsKIH0KIApA
QCAtNzIsNiArNzMsMTAgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2Vi
SURCQ3Vyc29yKiBjdXJzb3IsIGNvbnN0IFdlYklEQktleSYga2V5LAogCiB2b2lkIFdlYklEQkNh
bGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpCiB7
CisgICAgaWYgKG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eSkgeworICAgICAgICBtX2NhbGxiYWNr
cy0+b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoc3Rh
dGljX2Nhc3Q8V2ViSURCRGF0YWJhc2UqPigwKSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVh
dGUoYWRvcHRQdHIod2ViS2l0SW5zdGFuY2UpKSk7CiB9CiAKQEAgLTEwNSw2ICsxMTAsMTcgQEAg
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQoKQogICAgIG1fY2FsbGJhY2tzLT5v
bkJsb2NrZWQoKTsKIH0KIAordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChvbGRWZXJz
aW9uKTsKK30KKwordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgV2ViSURC
RGF0YWJhc2UqIGRhdGFiYXNlKQoreworICAgIG1fZGlkQ3JlYXRlRGF0YWJhc2VQcm94eSA9IHRy
dWU7CisgICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHRyYW5zYWN0aW9uKSksIElEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIoZGF0YWJhc2UpKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgK
aW5kZXggMzBkNzQzNmM2YTU5ZjQ4OTYyOTA1MjYwMmFmODkzODQ4MzJiMzkyOC4uMzNjZDIwMjlm
YWNmY2Q1Mjk1ZGQ2NjQ0YWQwMWNjN2RiNzY5OTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtNTEsOSArNTEsMTIgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlJiwgY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5UGF0aCYpOwogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViSURCS2V5JiwgY29uc3QgV2ViSURCS2V5JiBw
cmltYXJ5S2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChsb25nIGxvbmcg
b2xkVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZChsb25nIGxvbmcg
b2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qLCBXZWJJREJEYXRhYmFzZSopOwogCiBwcml2
YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOworICAg
IGJvb2wgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZjYWFm
M2ZlNTY1OWZhZjMxLi4xNDc1N2JhYzY3MGQ5ZGU0ZmFmYTQ5ZWFhNjg5ZWQ5YzRkYWJiZTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6fldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9s
ZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9uKQoreworICAgIG1fY2FsbGJhY2tzLT5vblZl
cnNpb25DaGFuZ2Uob2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQgV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJz
aW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2UodmVyc2lvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5oCmluZGV4IDIxYzNkYzdjNWFjNGFkMGJlYThkZjI5MTZlYmIzZjg4YzY3ZmYwNWYu
LjE4NTdjYTY1OGQzMGZjMjYwMDUyMWE2ZGFkMTkzMTMxMzg1N2NmOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogICAgIHZp
cnR1YWwgfldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCisgICAgdmlydHVhbCB2b2lk
IG9uVmVyc2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNp
b24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2
ZXJzaW9uKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGJjNmQwOWZhMWZiOTcwYzI5N2UxNzdhMjE1NGVl
NzEwMThmYWZmZjcuLjkzNDMyODFjZjRkMGFmMTdjYjZjMzIyNTA4MWRmNDA3MWRhZTg3M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNw
cApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSURCRGF0YWJhc2VJ
bXBsOjpXZWJJREJEYXRhYmFzZUltcGwoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U+IGRhdGFiYXNlQmFja2VuZCkKICAgICA6IG1fZGF0YWJhc2VCYWNrZW5kKGRhdGFiYXNl
QmFja2VuZCkKKyAgICAsIG1fY2xvc2VQZW5kaW5nKGZhbHNlKQogewogfQogCkBAIC05NCw4ICs5
NSwxMCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UoKQogewogICAgIC8vIFVzZSB0
aGUgY2FsbGJhY2tzIHRoYXQgOjpvcGVuIGdhdmUgdXMgc28gdGhhdCB0aGUgYmFja2VuZCBpbgog
ICAgIC8vIG11bHRpLXByb2Nlc3MgY2hyb21pdW0ga25vd3Mgd2hpY2ggZGF0YWJhc2UgY29ubmVj
dGlvbiBpcyBjbG9zaW5nLgotICAgIGlmICghbV9kYXRhYmFzZUNhbGxiYWNrcykKKyAgICBpZiAo
IW1fZGF0YWJhc2VDYWxsYmFja3MpIHsKKyAgICAgICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwog
ICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2Rh
dGFiYXNlQ2FsbGJhY2tzKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKIH0KQEAgLTEw
NSw2ICsxMDgsOCBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6b3BlbihXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcyogY2FsbGJhY2tzKQogICAgIEFTU0VSVCghbV9kYXRhYmFzZUNhbGxiYWNrcyk7
CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+cmVnaXN0
ZXJGcm9udGVuZENhbGxiYWNrcyhtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICBpZiAobV9jbG9z
ZVBlbmRpbmcpCisgICAgICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRl
eCA0ZjgyNTE4MjBhNDliYmRmZGU1MmZhYjkxZWZmYTVhZWMwOGJhNDZkLi4xNDA5Y2I2NWYwNjVm
YjM1ZDQwMDcwM2Y2YzdiZTcyMjRkZDAwMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4gbV9kYXRhYmFzZUJhY2tlbmQ7CiAgICAgV1RGOjpSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eT4gbV9kYXRhYmFzZUNhbGxiYWNrczsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgZmxhZyB3aGVuIHdlIGNvbnNvbGlkYXRlIHR3by1waGFzZSBvcGVuLgorICAgIC8vIGh0dHA6
Ly93a2IudWcvOTA0MTEKKyAgICBib29sIG1fY2xvc2VQZW5kaW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJGYWN0b3J5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0
b3J5SW1wbC5jcHAKaW5kZXggZDE0YWM3MWUxOGM4NTkzMTUyZWZkZmQ1YzgzOWUwMTcyMGUzZmZk
Yy4uYWQ3MTQ3NmI3ZWJiNDY4NmVhODI1Yjk2MjE5MTZlNjNiMjkwYWM3NyAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcApAQCAtNjMsMTcg
KzYzLDkgQEAgdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0YWJhc2VOYW1lcyhXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2UKICAgICBtX2lkYkZhY3RvcnlCYWNrZW5k
LT5nZXREYXRhYmFzZU5hbWVzKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2Fs
bGJhY2tzKSksIG9yaWdpbiwgMCwgZGF0YURpcik7CiB9CiAKLQotdm9pZCBXZWJJREJGYWN0b3J5
SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdl
YlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUs
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9y
aWdpbiwgMCwgZGF0YURpcik7Ci19Ci0KIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29u
c3QgV2ViU3RyaW5nJiBkYXRhRGlyKQogewotICAgIC8vIEZJWE1FOiBQYXNzIHZlcnNpb24gYWxv
bmcgd2hlbiBXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZQotICAgIC8vIGhhcyBh
biBvcGVuIG1ldGhvZCB0aGF0IGFjY2VwdHMgaXQuCi0gICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+
b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOworICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9w
ZW4obmFtZSwgdmVyc2lvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxs
YmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAogdm9pZCBXZWJJREJGYWN0
b3J5SW1wbDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJh
bWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAppbmRleCBmYTQzOGQ3NjQ4ZTM0NjRjNWExY2JkNWNj
ZjU3Y2ZmMGU1NmYzMjg1Li44MzNlZWI1OTEyNTliODUzYzMyMWZkMTE4ZjA5NGE1YjhhN2M4ODY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgK
QEAgLTQ1LDcgKzQ1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlJbXBs
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBk
YXRhRGlyKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdl
YlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggM2ZjMTA1MzA3YmY1N2Uw
NTQxM2U5ZDE3MmMxNTU5YzU0MDhiYzdjYS4uMWQzOTUwOTZhYWRiM2E1YjNkZTliNzBkYWI2MGYz
MTg5Y2ZiYTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJB
Ym9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtMTAyLDcgKzEwMiw4IEBAIFRFU1QoSURCQWJv
cnRUZXN0LCBUaGVUZXN0KQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9ICJkYiBuYW1lIjsKICAg
ICBNb2NrSURCQ2FsbGJhY2tzIGNhbGxiYWNrczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoImh0dHAiLCAibG9jYWxob3N0IiwgODEp
OwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgJmNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUq
LywgU3RyaW5nKCkgLypwYXRoKi8pOworICAgIGNvbnN0IGludDY0X3QgRHVtbXlWZXJzaW9uID0g
MjsKKyAgICBmYWN0b3J5LT5vcGVuKG5hbWUsIER1bW15VmVyc2lvbiwgJmNhbGxiYWNrcywgb3Jp
Z2luLCAwIC8qRnJhbWUqLywgU3RyaW5nKCkgLypwYXRoKi8pOwogfQogCiB9IC8vIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VC
YWNrZW5kVGVzdC5jcHAKaW5kZXggMjI3Nzg4NzVmYTkzNDAyMDc4NzMwMTM4ZTEzYTM0NjE2ZjQz
NTkxMi4uODYwNWMwZjFhYzYyODdmZmRjODI4MThlNWEzZTA1NjM0YThiMmM4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwCkBAIC0xMDAsNiArMTAwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpKTsgfQogICAgIHZpcnR1YWwgfkZha2VJREJEYXRh
YmFzZUNhbGxiYWNrcygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJz
aW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKSBPVkVSUklE
RSB7IH0KIHByaXZhdGU6CiAgICAgRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDUxODA4OWI5NTI4ZDZhNDQ4MmExNzk4YTU2YjdiOTgyNDRmMWRmNmYuLjEyOGQxZTcx
YjE1MjY3ZmE0N2QwN2VmYzkyMTJiMTIzOTkyODM4ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wOC0xNCAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgSW5kZXhlZERCOiBGcm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0
dmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBn
cmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVj
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMTUgIEFs
ZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjog
Z2VuZXJhdGUgaW5kZXgga2V5cyBmb3IgZXhpc3RpbmcgZGF0YSBpbiBjcmVhdGVJbmRleCBpbiBm
cm9udCBlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA5OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1
YTdkODkyYWE2YTYzLi41YTA1OGNmMTI2NTlkY2FhNGJmMTQ1ODhlZTg0NTY5YTZjN2Y1YzVhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSw3ICsxMSwxMyBAQCBpbmRleGVkREIub3BlbihkYm5hbWUs
IDIpCiByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKIEZJWE1FOiBUaGlz
IHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCiByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawotRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNh
bGxlZCB1bmV4cGVjdGVkbHkuCisKK3VwZ3JhZGVOZWVkZWQoKToKK1BBU1MgZGIudmVyc2lvbiBp
cyAyCit0cmFuc2FjdGlvbi5hYm9ydCgpCisKK29uQWJvcnQoKToKK0ZBSUwgZXZlbnQudGFyZ2V0
LmRiLnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0
ZWQudHh0CmluZGV4IGYyMjJjYTE1ZDA5Yzc0ZDNhMmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYuLjA0
ZjI4MWFhZDg0N2U4ODY4NjJmNzM5YWU0Y2ZhMjk0NzI3MjYyZjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5k
LXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0zMywxNyArMzMsNTcgQEAgUEFTUyBkYi52ZXJz
aW9uIGlzICJzb21lIHZlcnNpb24iCiBkYi5jbG9zZSgpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1Mg
U3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIK
K0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQgYmUgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0
cmluZykuIFdhcyAwIChvZiB0eXBlIG51bWJlcikuCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMg
MgorcmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQK
KwordHJhbnNhY3Rpb25Db21wbGV0ZWQoKToKK2RpZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVl
CisKIGZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Ci1GQUlMIGRpZFRyYW5zYWN0aW9uQ29tcGxldGUg
c2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBp
cyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgU3RyaW5nKGRiKSBpcyAiW29i
amVjdCBJREJEYXRhYmFzZV0iCiBQQVNTIHJlcXVlc3QudHJhbnNhY3Rpb24gaXMgbnVsbAotRkFJ
TCBkYi52ZXJzaW9uIHNob3VsZCBiZSAyIChvZiB0eXBlIG51bWJlcikuIFdhcyBzb21lIHZlcnNp
b24gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2Jq
ZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KK1BBU1MgZGIu
dmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhyZXF1ZXN0KSBpcyAiW29iamVjdCBJREJPcGVuREJS
ZXF1ZXN0XSIKIHJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJzdHJpbmcgdmVyc2lvbiAyIikKIFBB
U1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIK
IHJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25Ob3RBbGxvd2VkCi1GQUlMIFN1Y2Nlc3MgZnVu
Y3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKworc2V0VmVyc2lvbk5vdEFsbG93ZWQoKToKK1BB
U1MgZXZlbnQudHlwZSBpcyAiZXJyb3IiCityZXF1ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9IFlv
dSBjYW4ndCB1c2UgdGhlIHNldFZlcnNpb24gZnVuY3Rpb24gaWYgeW91J3ZlIGFscmVhZHkgc2V0
IHRoZSB2ZXJzaW9uIHRocm91Z2ggYW4gb3BlbiBjYWxsLiAgVGhlIGN1cnJlbnQgaW50ZWdlciB2
ZXJzaW9uIGlzIDIKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUs
IDEpCityZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldoZW5UcnlpbmdMb3dWZXJzaW9uCisKK2Vycm9y
V2hlblRyeWluZ0xvd1ZlcnNpb24oKToKK3JlcXVlc3Qud2Via2l0RXJyb3JNZXNzYWdlID0gVGhl
IHJlcXVlc3RlZCB2ZXJzaW9uICgxKSBpcyBsZXNzIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24g
KDIpLgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNCkKK3JlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRlZAorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGly
ZE9wZW5TdWNjZXNzCisKK3NlY29uZFVwZ3JhZGVOZWVkZWQoKToKK2dvdFNlY29uZFVwZ3JhZGVO
ZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdW
ZXJzaW9uIGlzIDQKKwordGhpcmRPcGVuU3VjY2VzcygpOgorUEFTUyBnb3RTZWNvbmRVcGdyYWRl
TmVlZGVkIGlzIHRydWUKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9u
IGlzIDQKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNjZXNzCisKK2ZvdXJ0aE9wZW5TdWNjZXNzKCk6
CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyA0CiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IGJhYzNjY2YyYzM0YmZmMDk0OTQzZTYxM2ZhMGRiNjM4N2RmYmEzOTQu
LmJjNzIzMzYxYzA4OGFiMTk1ZTA3M2Q5YjMwOTgzNzg1OWRlYzM4ZWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2Vk
LWV4cGVjdGVkLnR4dApAQCAtMTEsMTUgKzExLDQyIEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCiBkZWxldGVTdWNjZXNzKCk6CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290Rmlyc3RVcGdyYWRl
TmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVu
dC5uZXdWZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5nKGV2ZW50KSBpcyAiW29iamVjdCBJREJWZXJz
aW9uQ2hhbmdlRXZlbnRdIgorCiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKLUZBSUwgZ290
Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mg
Z290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQogY29ubmVjdGlvbjEgPSBldmVudC50
YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdl
SGFuZGxlcgogUEFTUyBTdHJpbmcoY29ubmVjdGlvbjEpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNl
XSIKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpCiAKK3ZlcnNpb25DaGFuZ2VI
YW5kbGVyKCk6CitzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50LnR5cGUg
aXMgInZlcnNpb25jaGFuZ2UiCitQQVNTIFN0cmluZyhldmVudCkgaXMgIltvYmplY3QgSURCVmVy
c2lvbkNoYW5nZUV2ZW50XSIKK1BBU1MgZXZlbnQudGFyZ2V0IGlzIGNvbm5lY3Rpb24xCitQQVNT
IGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDMKKworYmxv
Y2tlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBzYXdWZXJzaW9uQ2hhbmdlRXZlbnQgaXMgdHJ1ZQor
Z290QmxvY2tlZEV2ZW50ID0gdHJ1ZQorUEFTUyBTdHJpbmcoZXZlbnQpIGlzICJbb2JqZWN0IElE
QlZlcnNpb25DaGFuZ2VFdmVudF0iCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBl
dmVudC5uZXdWZXJzaW9uIGlzIDMKK1BBU1MgZXZlbnQudHlwZSBpcyAiYmxvY2tlZCIKK2Nvbm5l
Y3Rpb24xLmNsb3NlKCkKKworc2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50SGFuZGxlcigpOgorUEFT
UyBnb3RCbG9ja2VkRXZlbnQgaXMgdHJ1ZQorZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0g
dHJ1ZQorCiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2soKToKLUZBSUwgZ290U2Vjb25kVXBncmFkZU5l
ZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGdvdFNlY29uZFVwZ3Jh
ZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKaW5kZXggYzA2MDllZTRjMDVhMWU3ZGExYThlOTFhOWU5YTg4OTMwODgwZGZmMC4u
NTUxZjhkODZlYjZlNzc2ZGU2MzE4OGE5YWEwMzEzNTAwOGVjYjZmNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEwLDExICsxMCwyNyBA
QCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgNykKIAogCit1cGdyYWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgn
b2JqZWN0c3RvcmUnKQordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwor
dHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitz
ZXRUaW1lb3V0KGNsb3NlREIsIDApCisKIG9wZW5TdWNjZXNzKCk6CiBQQVNTIGRpZENhbGxDbG9z
ZURCIGlzIGZhbHNlCi1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFT
UyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAxCitkYi50cmFuc2FjdGlvbihkYi5vYmpl
Y3RTdG9yZU5hbWVzKQorCitjbG9zZURCKCk6CitkaWRDYWxsQ2xvc2VEQiA9IHRydWUKK2RiLmNs
b3NlKCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTY1
ZWRiMjRiZGQ2ZTIxOTczMjUyNGMxMTk1OGJlMjQwYzkzZjhjYS4uYzNmODA5NmU5ZjRkY2IzNmU0
NjUxMjNlODM4NDViZjQ5ZmUyYWQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29t
cGxldGUtZXhwZWN0ZWQudHh0CkBAIC05LDE0ICs5LDI0IEBAIGRibmFtZSA9ICJpbnR2ZXJzaW9u
LWNsb3NlLWluLW9uY29tcGxldGUuaHRtbCIKIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQogCit1cGdyYWRlTmVlZGVk
KCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3
CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQu
dHJhbnNhY3Rpb24KKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29t
cGxldGUgPSB0cnVlCitkYi5jbG9zZSgpCisKIG9wZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5z
YWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNh
Y3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIu
dmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmlu
ZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywgJ3JlYWR3cml0ZScpCiBQQVNTIEV4Y2VwdGlv
biB3YXMgdGhyb3duLgotRkFJTCBjb2RlIHNob3VsZCBiZSAxMS4gV2FzIDguCi1GQUlMIGVuYW1l
IHNob3VsZCBiZSBJbnZhbGlkU3RhdGVFcnJvci4gV2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIGNv
ZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCitQQVNTIGVuYW1lIGlzICdJbnZh
bGlkU3RhdGVFcnJvcicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3Rl
ZC50eHQKaW5kZXggNjVlZDg1ZDQ4MTlkZDAwYTNlMGUzNGFjOWM0NGQyOWNjNGRhMWQwYi4uMThm
MzNiOGI0NmUyZWI1NDJjY2I5NDgxODkxY2JlYTgzZGFlMDMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0xMCwxMiArMTAsMjIg
QEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDcpCiAKIAordXBncmFkZU5lZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNwordHJhbnNhY3Rpb24gPSBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24KK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCitkYi5jbG9zZSgp
CisKK3RyYW5zYWN0aW9uLm9uY29tcGxldGU6CitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1
ZQorCiBvcGVuU3VjY2VzcygpOgotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBi
ZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQog
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9m
IHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBzdHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlz
IDcKIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykKLUZBSUwgdHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignb3MnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gOAorRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6
IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gMTEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0
ZWQudHh0CmluZGV4IGVmMTUzZDBkOTRlMjA4YzFmM2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkuLjUy
OGJlNzYxYTI5ZTIwOWEzMDdhNGFjZDM2MzFmMTk0ODU4YzMwMGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdh
dGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKQEAgLTQ2LDYgKzQ2LDEwIEBAIGNvbm5lY3Rpb24x
LmNsb3NlKCkKIAogZGVsZXRlRGF0YWJhc2VTdWNjZXNzQ2FsbGJhY2soKToKIAordXBncmFkZU5l
ZWRlZENhbGxiYWNrKCk6CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5v
bGRWZXJzaW9uIGlzIDAKKwogb3BlbldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6CiBQQVNT
IGV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGggaXMgMAogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZm
ZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dApp
bmRleCBlNzRlNWFhN2ZiYWM2OGZhNTFmZGRhNTFhNTRmZmU1M2Y2YjljYTU4Li5kMjhjYzdmZDAx
MTliNjcxMDNiZDM5YzE2MGRjOWM0N2ZkMTM4OGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lk
ZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVj
dGVkLnR4dApAQCAtMTEsOCArMTEsMTMgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIp
CiAKK2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRF
dmVudCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1Zl
cnNpb24gaXMgMgorCiBmaXJzdFN1Y2Nlc3NFdmVudEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RV
cGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmly
c3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQogY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQu
cmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNpb25jaGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNo
YW5nZUNhbGxiYWNrCiBQQVNTIFN0cmluZyhjb25uZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0
YWJhc2VdIgpAQCAtMjQsNyArMjksMTMgQEAgcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNp
b24nKQogcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbkVycm9yCiByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2sKIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjawotRkFJTCBvbnZlcnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0
ZWRseQorCitzZXRWZXJzaW9uRXJyb3IoKToKK09wZW4gdXAgYSBuZXcgZGIgdG8gZW5zdXJlIHRo
YXQgaWYgY29ubmVjdGlvbjEgd2VyZSB0byBnZXQgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCBpdCB3
aWxsIGJlIGRlbGl2ZXJlZCBiZWZvcmUgdGhlIHRlc3QgZmluaXNoZXMKK25ld19kYiA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSArICcyJykKK25ld19kYi5vbnN1Y2Nlc3MgPSBuZXdEQlN1Y2Nlc3MK
KworbmV3REJTdWNjZXNzKCk6CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUtZXhwZWN0ZWQudHh0CmluZGV4IDY5OTIwOWFm
NzdkMzFhMmFlZGNiZmE0ZDQzMWI5M2RiMWFlMTEyZGQuLmNlZmYwOTVjM2Y2MzkwNzY3OTM2OTRk
MTU3ZTZmYTEzMjAxYjM2N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dApAQCAt
NjUsOCArNjUsMTMgQEAgRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4g
V2FzIHVuZGVmaW5lZAogRkFJTCBldmVudC5uZXdWZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0
eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KIFBBU1MgZXZl
bnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCiAKK3VwZ3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290
VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BB
U1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisKIG9wZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFj
aygpOgotRkFJTCBnb3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxz
ZS4KK1BBU1MgZ290VXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0
LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50
eHQKaW5kZXggMzM3MGNhZDAwNDcxNmMzZDQ5YzliODViMTVmODZhOWQ5OWNlYWRkYi4uOTA1NDc4
ZGRlNDg3MjI4MzJjODEwYzJkNjkzYmQyNjE5MjM4OWFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVu
LXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTEzLDE3ICsxMywzMyBAQCBTaG91bGQgdHJp
Z2dlcjoKIDQuMS43OiBJZiB0aGUgdmVyc2lvbiBvZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24s
IHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmluZyBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2Fj
dGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9uLCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxi
YWNrLgogNC4xLjk6IFJldHVybiBjb25uZWN0aW9uLgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgNykKLUZBSUwgU3RyaW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9w
ZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJSZXF1ZXN0XS4KK1BBU1MgU3RyaW5nKHJlcXVl
c3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIgogCitQQVNTIEluIHRoZSB1cGdyYWRl
bmVlZGVkIGV2ZW50IGhhbmRlcjoKK1Rlc3QgNC44LjkuMToKK2RiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKK1Rlc3QgNC44
LjkuMzoKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24g
aXMgNworUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyAiZG9uZSIKK1Rlc3QgNC4xLjQ6
CitQQVNTIGRiLm5hbWUgaXMgZGJuYW1lCitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5v
YmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbgorUEFTUyBTdHJpbmcodHJhbnNhY3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5z
YWN0aW9uXSIKK29zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWVPUyIpCitzYXdUcmFuc2Fj
dGlvbkNvbXBsZXRlID0gdHJ1ZQogCiBvcGVuU3VjY2VzcygpOgogVGVzdCA0LjEuNywgdGhhdCBh
IHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2FzIHJ1bi4KLUZBSUwgc2F3VXBncmFkZU5lZWRl
ZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgotRkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1VwZ3JhZGVOZWVkZWQgaXMgdHJ1
ZQorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAogS2luZCBvZiB0ZXN0IDQuMS45OgogUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0
IElEQkRhdGFiYXNlXSIKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1i
ZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2Vk
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
YmxvY2tlZC5qcwppbmRleCAzZDE4ZGNhNzc1MWRjYzk3MDQwNTgzMTM3ZDgyNzM5MzdlOWI1OTQ4
Li4yNGU1OTdkYjhiNmZhY2IyYjA1Nzk0NjFmMjk1NjM3MzkyNTJmNmUyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2Vk
LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJz
aW9uLWJsb2NrZWQuanMKQEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVl
ZGVkQ2FsbGJhY2soZXZ0KQogICAgIGV2YWxBbmRMb2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2
ZW50ID0gdHJ1ZSIpOwogICAgIHNob3VsZEJlKCJldmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKICAg
ICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIsICIyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJTdHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElE
QlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKIH0KIAogZ290QmxvY2tlZEV2ZW50ID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158960</attachid>
            <date>2012-08-16 17:48:46 -0700</date>
            <delta_ts>2012-08-16 19:33:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92897-20120816174811.patch</filename>
            <type>text/plain</type>
            <size>85410</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU0MTdhYTJmZTM0Njlm
Y2NjZGIzYjdhYmYwMzZhM2NlMzViM2UzYS4uNWYwZDA2ZDhmMDAxYWJiMzA2NWIxMzdkZDlmYTg4
YzExOTI4MzA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBleHBvc2VzIGludGVn
ZXIgdmVyc2lvbnMgYW5kIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRvCisgICAgICAgIHNjcmlw
dC4KKworICAgICAgICBUaGUgZXZlbnRzIHN1cnJvdW5kaW5nIGFuIElEQk9wZW5EQlJlcXVlc3Qg
Zm9sbG93IGEgbmV3IHBhdHRlcm4KKyAgICAgICAgY29tcGFyZWQgdG8gb3RoZXIgaWRiIHJlcXVl
c3RzLiBBbiBvcGVuIHJlcXVlc3QgY2FuIHJlY2VpdmUgYSBibG9ja2VkCisgICAgICAgIGV2ZW50
LCBhbiB1cGdyYWRlbmVlZGVkIGV2ZW50LCBhbmQgdGhlbiBhIHN1Y2Nlc3MgZXZlbnQuIFdoZW4K
KyAgICAgICAgZGlzcGF0Y2hpbmcgdGhlIHVwZ3JhZGVuZWVkZWQgYW5kIHN1Y2Nlc3MgZXZlbnRz
IHRoZSByZXF1ZXN0IGhhcyBpdHMKKyAgICAgICAgcmVhZHlTdGF0ZSBzZXQgdG8gRE9ORSBhbmQg
aXRzIHJlc3VsdCBwcm9wZXJ0eSBzZXQgdG8gYW4gSURCRGF0YWJhc2UuCisgICAgICAgIFdlIHVz
dWFsbHkgdGhpbmsgb2YgSURCUmVxdWVzdHMgZmlyaW5nIG9uZSBldmVudCB3aXRoIG9uZSByZXN1
bHQsCisgICAgICAgIGN1cnNvcnMgYmVpbmcgdGhlIGJpZyBleGNlcHRpb24uIFRoZXJlIGFyZSBz
b21lIG1pbm9yIGNoYW5nZXMgYXJvdW5kCisgICAgICAgIGVucXVldWluZyBhbmQgZGlzcGF0Y2hp
bmcgZXZlbnRzIHRvIHN1cHBvcnQgdGhpcy4KKworICAgICAgICBUaGVyZSdzIGFsc28gc29tZSBm
dW5raW5lc3MgaW4KKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgc28gdGhhdAorICAgICAgICB0aGUgSURCRGF0YWJh
c2Ugb2JqZWN0IGRlbGl2ZXJlZCBpbiB1cGdyYWRlbmVlZGVkIGlzIHJldXNlZCBmb3IgdGhlCisg
ICAgICAgIHN1Y2Nlc3MgZXZlbnQuCisKKyAgICAgICAgVGVzdHMgLSBleHBlY3RhdGlvbnMgYXJl
IHVwZGF0ZWQgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpvblZlcnNpb25DaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6cmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6b3Blbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
Lmg6CisgICAgICAgIChJREJGYWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbXBsOjpv
cGVuKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
VXBncmFkZU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzaG91
bGRFbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElE
Qk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6SURCUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB3b3JrcyB3aXRoIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyB0byByZXVzZSBpdHMK
KyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHRoYXQgaXQgZ290IGR1cmluZwor
ICAgICAgICBJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVOZWVkZWQuCisKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWREaXNwYXRjaENvbXBsZXRlT3JBYm9ydCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmVucXVldWVFdmVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25CbG9ja2VkKToKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgV2Ug
bm93IHRha2UgYSBwb2ludGVyIHRvIHRoZSBvcGVuREJSZXF1ZXN0IGlmIHRoaXMgaXMgYSB2ZXJz
aW9uCisgICAgICAgIGNoYW5nZSB0cmFuc2FjdGlvbiBhcyBhIHJlc3VsdCBvZiBhbiBvcGVuLXdp
dGgtdmVyc2lvbiBjYWxsIHNvIHRoYXQgd2UKKyAgICAgICAgY2FuIGNsZWFyIHRoZSB0cmFuc2Fj
dGlvbiBwcm9wZXJ0eSBvbiB0aGUgb3BlbkRCUmVxdWVzdCBhcyBzb29uIGFzIHRoZQorICAgICAg
ICB1cGdyYWRlbmVlZGVkIGV2ZW50IGlzIGRpc3BhdGNoZWQgcGVyIHRoZSBzcGVjICgiLi4uIHNl
dCByZXF1ZXN0J3MKKyAgICAgICAgdHJhbnNhY3Rpb24gcHJvcGVydHkgdG8gbnVsbC4uLiAiLCBj
dXJyZW50bHkgNC44LjEyKS4KKworICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uOjpJREJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6
c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpvbkNvbXBsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpkaXNwYXRjaEV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVudDo6SURCVXBn
cmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVkZWRFdmVu
dDo6fklEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpuZXdWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJVcGdyYWRlTmVlZGVkRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0xNiAgTmljbyBXZWJlciAgPHRo
YWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRGVsZXRlIFRoZW1lQ2hyb21pdW1NYWMsIHVz
ZSBUaGVtZU1hYyBpbiBjaHJvbWl1bS9tYWMgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA3OTJmMTA0ZTYwOGJhMDUyMTZjOTIwNzU2NmM2MTIwOWNkZjlkMjVmLi5mYzhmNGRh
OGYwOWQwNmQ4Zjg0ODQwYjkzZDc2YTc5ZWM4OTllNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA4LTE0ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2Fu
QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZyb250ZW5kIGFuZCBwbHVtYmlu
ZyBmb3IgaW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OklEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6Om9uVXBncmFkZU5lZWRlZCk6CisgICAg
ICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJDYWxsYmFja3NQcm94
eSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldFZlcnNpb24pOgorICAgICAgICAq
IHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAg
KElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6
b3Blbik6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaDoKKyAgICAgICAg
KElEQkZhY3RvcnlCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlvbkNh
bGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eTo6b25Db21wbGV0ZSk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpXZWJJREJDYWxsYmFj
a3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNz
KToKKyAgICAgICAgV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgSURCRGF0YWJhc2VCYWNrZW5kUHJv
eHkgYWdhaW4gaWYgd2UndmUgYWxyZWFkeQorICAgICAgICBjcmVhdGVkIGl0IGR1cmluZyB1cGdy
YWRlTmVlZGVkLiAgVGhpcyBtYWtlcworICAgICAgICBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoSURC
RGF0YWJhc2VCYWNrZW5kKSByZXVzZSBpdHMgcHJldmlvdXMKKyAgICAgICAgSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlIGlmIGl0IGhhcyBvbmUuCisKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uVXBncmFkZU5lZWRlZCk6CisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkNhbGxiYWNrc0ltcGwp
OgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCk6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRh
dGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
RGF0YWJhc2VJbXBsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1w
bDo6b3Blbik6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAo
V2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6b3Blbik6CisgICAgICAgICog
c3JjL1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJREJGYWN0b3J5SW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSk6Cisg
ICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOgor
CiAyMDEyLTA4LTE2ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBbY2hyb21pdW1dIFJlcGxhY2UgZGVzdFJlY3Qgd2l0aCBkZXN0T2Zmc2V0IGluIHRleHR1
cmUgdXBsb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5jcHAKaW5kZXggODViYThkZmJjOWMxYWYyZTgzYTI0NDY5YmRjZjk2MTgyZDVhMjU3OC4u
ZGFiNzRlZDBlOGI0ZTNkYzBjMTY4NjYxYWFhYWE4MWMwNmViNzU4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCVHJhY2luZy5o
IgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiSURCVXBncmFkZU5lZWRl
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiSURCVmVyc2lvbkNoYW5nZUV2ZW50LmgiCiAjaW5jbHVkZSAi
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
QEAgLTMwMyw2ICszMDQsMTcgQEAgdm9pZCBJREJEYXRhYmFzZTo6Y2xvc2VDb25uZWN0aW9uKCkK
ICAgICB9CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9s
ZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikKK3sKKyAgICBpZiAobV9jb250ZXh0U3RvcHBl
ZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9jbG9zZVBlbmRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGVucXVldWVFdmVudChJ
REJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uLCBldmVu
dE5hbWVzKCkudmVyc2lvbmNoYW5nZUV2ZW50KSk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2U6Om9u
VmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pCiB7CiAgICAgaWYgKG1fY29udGV4
dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IDY0Y2JiMzI2YTU4ODNkY2Yz
OTQ3M2NhYTEwOTcyOTA1ZjNmZTY3NWUuLmE3ZDcyY2UxOThmM2UwZmRhYWQwY2EzZjMwZjg2YzRl
ZjM3YTcyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuaApAQCAtNzgsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUih2ZXJzaW9uY2hhbmdlKTsKIAogICAgIC8vIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzCisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24s
IGludDY0X3QgbmV3VmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShj
b25zdCBTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGEzMTI1MWM4ZDYzNzg1MGNmODdhZDhjYTRjMmU5
ZWUxYTVhMjhlYjAuLmY5YjFhZWU1ZWZlNzZiODUzMjQ4YWY4Y2IyZjUxNDJkODBjNzI2Y2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC00NDQsMTAgKzQ0NCw2IEBAIHZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcykKIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gcHJwQ2FsbGJhY2tzKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHdv
bid0IGJlIHJlYWNoZWQgdW50aWwgaXQncyBleHBvc2VkIHRvIHNjcmlwdCBpbgotICAgIC8vIHdi
ay51Zy85Mjg5Ny4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLQogICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcyA9IHBycENhbGxiYWNrczsKICAgICBBU1NFUlQoY2FsbGJhY2tz
KTsKICAgICBmb3IgKERhdGFiYXNlQ2FsbGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1f
ZGF0YWJhc2VDYWxsYmFja3NTZXQuYmVnaW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxiYWNrc1Nl
dC5lbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXggMTZhOWVhNmM1MDhiMGQ5MmI2MWU0
OTk3YzU0MzAxMzJhNmQyYWNhYS4uZmFhMTY2ZjdmNTExZmY2NjY2ZjM5NzNkYmI4NDA0YjdmOWI1
MjNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
b25WZXJzaW9uQ2hhbmdlKGludDY0X3QgY3VycmVudFZlcnNpb24sIGludDY0X3QgcmVxdWVzdGVk
VmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblZl
cnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmlu
ZGV4IDE5NDEyZmNiZTUwYWI0NGJmNTNkYzAxZTAzZDg4NTNlMjhmN2M1ZmYuLmNlYjdhZjMxZjNl
MjI0ODYxZTA1MDc2MjEwZmFmYzVhMDU4ZGYyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cApAQCAtNTIsNiArNTIsMTIgQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVy
c2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pCiAgICAgICAgIG1fZGF0YWJhc2UtPm9u
VmVyc2lvbkNoYW5nZSh2ZXJzaW9uKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGw6Om9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lv
bikKK3sKKyAgICBpZiAobV9kYXRhYmFzZSkKKyAgICAgICAgbV9kYXRhYmFzZS0+b25WZXJzaW9u
Q2hhbmdlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOworfQorCiB2b2lkIElEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6dW5yZWdpc3RlckRhdGFiYXNlKElEQkRhdGFiYXNlKiBkYXRhYmFzZSkKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGRhdGFiYXNlLCBkYXRhYmFzZSA9PSBtX2RhdGFiYXNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsLmgKaW5kZXggZThiMWY5OWI4MzhhZjdiOTM3ZDk0YjdhZjhmN2Y3ZGZi
ODJiZTdmYi4uMDJjOGRlMGRmZTlmNmVmZGVkNjgwNWI3YmFjOTIxNzhmYjgwODhkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lv
bkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pOworICAgIHZpcnR1YWwgdm9pZCBvblZlcnNp
b25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZv
aWQgdW5yZWdpc3RlckRhdGFiYXNlKElEQkRhdGFiYXNlKik7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IGNmNTJj
YzFmZTJiMTM1NWI2YzU0ZWRjZTI2NWUwZjNlOGMzYTVlOTEuLmM4M2JhMzY0NWRiZjZkMzk4M2M5
Y2NhN2Q3YjM3YWIxNTA3NzJiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAiSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJ
REJLZXlSYW5nZS5oIgotI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xMDUsNyArMTA1LDcgQEAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnQKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVm
UHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmIChuYW1lLmlzTnVsbCgpKSB7CiAgICAgICAgIGVjID0g
TkFUSVZFX1RZUEVfRVJSOwpAQCAtMTE0LDExICsxMTQsMTYgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFMKICAgICBpZiAoIWlzQ29udGV4dFZhbGlkKGNvbnRleHQpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRl
KGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCAwKTsKLSAgICBtX2JhY2tlbmQtPm9wZW4o
bmFtZSwgcmVxdWVzdCwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29udGV4dCwgZ2V0SW5k
ZXhlZERCRGF0YWJhc2VQYXRoKGNvbnRleHQpKTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVz
dD4gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNy
ZWF0ZSh0aGlzKSwgdmVyc2lvbik7CisgICAgbV9iYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24s
IHJlcXVlc3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWRE
QkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKK1Bhc3NS
ZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHJldHVybiBvcGVuKGNvbnRleHQsIG5hbWUsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5v
SW50VmVyc2lvbiwgZWMpOworfQorCiBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
PiBJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChu
YW1lLmlzTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmgKaW5kZXggNDYxMWNiNmM0ZmU4Mzk5MGI0NzI0YTQzYmYwOWM5YTVhOTVkODg4ZC4u
MzY0NWJiODFkYzdlZTk2NjkwNWRhNjUyYzA2NGRhNzM4NmY2NTNmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApAQCAtMzAsNyArMzAsNyBAQAog
CiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2luY2x1ZGUgIklEQk9wZW5E
QlJlcXVlc3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU4LDcgKzU4LDgg
QEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXREYXRhYmFzZU5hbWVz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRp
b25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgUGFzc1JlZlB0cjxJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgc2hvcnQgY21wKFBhc3NSZWZQdHI8SURCS2V5PiBmaXJzdCwgUGFzc1JlZlB0
cjxJREJLZXk+IHNlY29uZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCAwMzg5ZWIyYWFlN2UxMjk5NTRk
OWFjZjAzYTU5ZmZiY2M3ZmJhYWNjLi5iZjcxYTJkZDI1ZDFmZjk1ZTI2NDM1ZjRlNDFmMGM0MWI5
NzY3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmlkbApAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgXSBJREJGYWN0
b3J5IHsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVu
dGVkQXM9Z2V0RGF0YWJhc2VOYW1lc10gSURCUmVxdWVzdCB3ZWJraXRHZXREYXRhYmFzZU5hbWVz
KCk7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbihpbiBET01TdHJpbmcgbmFtZSkKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQk9wZW5EQlJlcXVlc3Qgb3BlbihpbiBET01TdHJpbmcgbmFtZSwgaW4g
W09wdGlvbmFsXSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbikKICAgICAgICAgICAgIHJhaXNl
cyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgZGVsZXRlRGF0YWJhc2UoaW4gRE9N
U3RyaW5nIG5hbWUpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IDYzYmQ0NzgzZTU0YWUzMWY0ZDQ5NTk2ZjNiNjBkOWFm
ODI1NGM5ZGMuLjhkYTVjMDJlNDIzZjZmNjRlNTc5NzMwZGI3M2ZhMjllYzJiZTQ2MDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eUJhY2tlbmRJbXBsLmNwcApAQCAtMTUwLDEwICsxNTAsOCBAQCBQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZT4gSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuQmFja2luZ1N0b3JlKFBhc3NSZWZQ
dHI8UwogICAgIHJldHVybiAwOwogfQogCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHBycFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyZWN0b3J5KQordm9pZCBJREJGYWN0
b3J5QmFja2VuZEltcGw6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHBycFNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyZWN0b3J5KQogewotICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgYSBwYXJh
bWV0ZXIgYW5kIHBsdW1iIHRocm91Z2ggZnJvbSBqYXZhc2NyaXB0LgotICAgIGludDY0X3QgdmVy
c2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbjsKICAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gcHJwU2VjdXJpdHlPcmlnaW47CiAgICAgY29u
c3QgU3RyaW5nIHVuaXF1ZUlkZW50aWZpZXIgPSBjb21wdXRlVW5pcXVlSWRlbnRpZmllcihuYW1l
LCBzZWN1cml0eU9yaWdpbi5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKaW5kZXggY2ExZDA1Mjgy
YThjNWVkZjc2NmQ1ZTU1NTA4ZmFlMGE5YzA0OGM2NS4uY2FkM2I1YTI0YjI5OWE5Mjk5YzJhZDI5
NGUzYjJlYTA0Y2ZkNzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJCYWNraW5nU3RvcmUoY29uc3QgU3RyaW5n
JiBmaWxlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICB2aXJ0dWFs
IHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIGRhdGFEaXIpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5n
JiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAog
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNDRmNWM3ODZlZjIxZWE0
NzE5ZjYzNjk0MjlmNzY3MzkwMDQwOTI5My4uNGVhNWQ4YTMzMGZkMDQxYWY1MWNiMmE5NTQ0ZWE0
OGFjZjY2NmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQog
CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRf
dCB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1
ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xZDg0OTQ4OGY4NDEzYzY0ZTUyODE5MjJjZGRjZTc1OGYyNGYw
NDAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklE
QlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKKyNpbmNsdWRlICJJREJVcGdyYWRlTmVlZGVk
RXZlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1
ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQoreworICAgIFJlZlB0cjxJREJPcGVuREJS
ZXF1ZXN0PiByZXF1ZXN0KGFkb3B0UmVmKG5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIHNv
dXJjZSwgdmVyc2lvbikpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6OklEQk9wZW5E
QlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJB
bnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJzaW9uKQorICAgIDogSURCUmVxdWVzdChjb250ZXh0LCBz
b3VyY2UsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFzaywgMCkKKyAg
ICAsIG1fdmVyc2lvbih2ZXJzaW9uKQoreworICAgIEFTU0VSVCghbV9yZXN1bHQpOworfQorCitJ
REJPcGVuREJSZXF1ZXN0Ojp+SURCT3BlbkRCUmVxdWVzdCgpCit7Cit9CisKK2NvbnN0IEF0b21p
Y1N0cmluZyYgSURCT3BlbkRCUmVxdWVzdDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JJREJPcGVuREJSZXF1ZXN0OworfQorCit2
b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uQmxvY2tlZChpbnQ2NF90IG9sZFZlcnNpb24pCit7Cisg
ICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVucXVl
dWVFdmVudChJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OmNyZWF0ZShvbGRWZXJzaW9uLCBtX3ZlcnNp
b24sIGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpKTsKK30KKwordm9pZCBJREJPcGVuREJSZXF1
ZXN0OjpvblVwZ3JhZGVOZWVkZWQoaW50NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gcHJwVHJhbnNhY3Rpb25CYWNrZW5kLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gcHJwRGF0YWJhc2VCYWNrZW5kKQorewor
ICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
ZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGRhdGFiYXNlQmFja2VuZCA9IHBycERh
dGFiYXNlQmFja2VuZDsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBwcnBUcmFuc2FjdGlvbkJhY2tlbmQ7CisgICAgUmVmUHRy
PElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBkYXRhYmFzZUJhY2tlbmQpOworCisgICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uPiBmcm9udGVuZCA9IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCB0cmFuc2FjdGlvbkJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NI
QU5HRSwgaWRiRGF0YWJhc2UuZ2V0KCksIHRoaXMpOworICAgIHRyYW5zYWN0aW9uQmFja2VuZC0+
c2V0Q2FsbGJhY2tzKGZyb250ZW5kLmdldCgpKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gZnJvbnRl
bmQ7CisgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5yZWxlYXNlKCkp
OworCisgICAgaWYgKG9sZFZlcnNpb24gPT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJz
aW9uKSB7CisgICAgICAvLyBUaGlzIGRhdGFiYXNlIGhhc24ndCBoYWQgYW4gaW50ZWdlciB2ZXJz
aW9uIGJlZm9yZS4KKyAgICAgIG9sZFZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZh
dWx0SW50VmVyc2lvbjsKKyAgICB9CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRF
dmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLnVwZ3JhZGVu
ZWVkZWRFdmVudCkpOworfQorCitib29sIElEQk9wZW5EQlJlcXVlc3Q6OnNob3VsZEVucXVldWVF
dmVudCgpIGNvbnN0Cit7CisgICAgaWYgKG1fY29udGV4dFN0b3BwZWQgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgaWYgKG1fcmVx
dWVzdEFib3J0ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYz
OGY2MzE1NzVhYWM4ODUxZDgwNTYzNWI4ZTU0NDBmMGVkZTI4YjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCT3BlbkRCUmVxdWVzdF9oCisjZGVmaW5l
IElEQk9wZW5EQlJlcXVlc3RfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNp
bmNsdWRlICJJREJSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURC
T3BlbkRCUmVxdWVzdCA6IHB1YmxpYyBJREJSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbik7CisgICAgdmly
dHVhbCB+SURCT3BlbkRCUmVxdWVzdCgpOworCisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChp
bnQ2NF90IGV4aXN0aW5nVmVyc2lvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG9uVXBn
cmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+
KSBPVkVSUklERTsKKworICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIoYmxvY2tlZCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUih1cGdyYWRlbmVlZGVkKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRFbnF1ZXVlRXZlbnQoKSBjb25zdCBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBJREJPcGVu
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291
cmNlLCBpbnQ2NF90IHZlcnNpb24pOworCisgICAgaW50NjRfdCBtX3ZlcnNpb247Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKKworI2VuZGlmIC8vIElEQk9wZW5EQlJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZTQ2YTUyZTE1MDRmMWY1M2I0ODRiNWMzZGM2NjgyYjExOTMxYzFkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKworICAgIGludGVyZmFj
ZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCisgICAgICAgIEFjdGl2
ZURPTU9iamVjdCwKKyAgICAgICAgRXZlbnRUYXJnZXQKKyAgICBdIElEQk9wZW5EQlJlcXVlc3Qg
OiBJREJSZXF1ZXN0IHsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25ibG9ja2Vk
OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVwZ3JhZGVuZWVkZWQ7CisgICAg
fTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKaW5kZXggZmExYzY2NzM0ZDRlZmI2ZTliOGY5MzBkYzQ1MTA5OTc2ODRlZTQ0Yi4uYTYzMzM5
ZjJhMjM5YWEzMzlkMzI0OTE0MmFhMDJjYjIwNDZjNzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTYwLDE2ICs2MCwxOCBAQCBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUgogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQor
ICAgICwgbV9yZXN1bHQoMCkKICAgICAsIG1fZXJyb3JDb2RlKDApCi0gICAgLCBtX3NvdXJjZShz
b3VyY2UpCi0gICAgLCBtX3Rhc2tUeXBlKHRhc2tUeXBlKQorICAgICwgbV9jb250ZXh0U3RvcHBl
ZChmYWxzZSkKICAgICAsIG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgLCBtX3JlYWR5
U3RhdGUoUEVORElORykKICAgICAsIG1fcmVxdWVzdEFib3J0ZWQoZmFsc2UpCi0gICAgLCBtX2Nv
bnRleHRTdG9wcGVkKGZhbHNlKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV90YXNr
VHlwZSh0YXNrVHlwZSkKICAgICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKICAgICAsIG1fY3Vyc29yRGlyZWN0aW9uKElEQkN1cnNv
cjo6TkVYVCkKICAgICAsIG1fcGVuZGluZ0N1cnNvcigwKQorICAgICwgbV9kaWRGaXJlVXBncmFk
ZU5lZWRlZEV2ZW50KGZhbHNlKQogewogICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAg
IG1fdHJhbnNhY3Rpb24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKQEAgLTI4NSwxMCArMjg3LDE1
IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UgPSBJ
REJEYXRhYmFzZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYmFja2VuZCk7Cisg
ICAgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZTsKKyAgICBpZiAobV9yZXN1bHQpIHsK
KyAgICAgICAgaWRiRGF0YWJhc2UgPSBtX3Jlc3VsdC0+aWRiRGF0YWJhc2UoKTsKKyAgICAgICAg
QVNTRVJUKGlkYkRhdGFiYXNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZGJEYXRhYmFzZSA9
IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBiYWNrZW5kKTsK
KyAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5nZXQoKSk7Cisg
ICAgfQogICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKCk7Ci0KLSAg
ICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFiYXNlLnJlbGVhc2UoKSk7CiAgICAg
ZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KIApAQCAtNDYzLDExICs0NzAs
MTIgQEAgYm9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBk
aXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgotICAgIEFTU0VS
VF9XSVRIX01FU1NBR0UoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50
IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBl
dmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGNvbnN0IGJvb2wgc2V0
VHJhbnNhY3Rpb25BY3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmVycm9yRXZlbnQgJiYgbV9lcnJvckNvZGUgIT0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9B
Qk9SVF9FUlIpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQsICJldmVu
dCB0eXBlIHdhcyAlcyIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgY29uc3QgYm9vbCBzZXRUcmFuc2FjdGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2
ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCBldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQgfHwgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYgbV9lcnJvckNvZGUgIT0gSURCRGF0YWJhc2VFeGNl
cHRpb246OklEQl9BQk9SVF9FUlIpKTsKIAogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkK
ICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0QWN0aXZlKHRydWUpOworCiAgICAgYm9vbCBkb250
UHJldmVudERlZmF1bHQgPSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgp
LCB0YXJnZXRzKTsKICAgICBpZiAoc2V0VHJhbnNhY3Rpb25BY3RpdmUpCiAgICAgICAgIG1fdHJh
bnNhY3Rpb24tPnNldEFjdGl2ZShmYWxzZSk7CkBAIC00NzUsNiArNDgzLDExIEBAIGJvb2wgSURC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBpZiAo
Y3Vyc29yVG9Ob3RpZnkpCiAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5wb3N0U3VjY2Vzc0hhbmRs
ZXJDYWxsYmFjaygpOwogCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVw
Z3JhZGVuZWVkZWRFdmVudCkgeworICAgICAgICBBU1NFUlQoIW1fZGlkRmlyZVVwZ3JhZGVOZWVk
ZWRFdmVudCk7CisgICAgICAgIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWU7Cisg
ICAgfQorCiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYgZG9udFByZXZlbnREZWZhdWx0ICYmICFt
X3JlcXVlc3RBYm9ydGVkKSB7CiAgICAgICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRFcnJvciht
X2Vycm9yKTsKQEAgLTUwMSw2ICs1MTQsMTYgQEAgdm9pZCBJREJSZXF1ZXN0Ojp1bmNhdWdodEV4
Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCkKICAgICB9CiB9CiAKK3ZvaWQgSURCUmVxdWVzdDo6dHJh
bnNhY3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCgpCit7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rp
b24pOworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAg
QVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV9yZWFkeVN0YXRl
ID0gUEVORElORzsKK30KKwogdm9pZCBJREJSZXF1ZXN0OjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8
IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKQEAgLTUwOCw3ICs1MzEsNyBAQCB2b2lkIElEQlJlcXVl
c3Q6OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBpZiAobV9jb250
ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HLCAiV2hl
biBxdWV1ZWluZyBldmVudCAlcywgbV9yZWFkeVN0YXRlIHdhcyAlZCIsIGV2ZW50LT50eXBlKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9yZWFkeVN0YXRlKTsKKyAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRF
dmVudCwgIldoZW4gcXVldWVpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVu
dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcmVhZHlTdGF0ZSk7CiAKICAgICBF
dmVudFF1ZXVlKiBldmVudFF1ZXVlID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudFF1
ZXVlKCk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCA0YTg0MjkxOTQ2MmNlNjk2NWNmZjYw
YTE4YWEwYjY2YzhjNjljYjE3Li43YTEyNDk2YWM2OTYzNmYxMDdiMzIzY2VlNDgzYTQ0YWEwYTc1
OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dp
dGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2Fs
bGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0
aW5nVmVyc2lvbikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJS
SURFOwpAQCAtMTAzLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BhdGNoRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBFdmVu
dFRhcmdldDo6ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHVu
Y2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKTsKIAorICAgIHZvaWQgdHJhbnNhY3Rpb25E
aWRGaW5pc2hBbmREaXNwYXRjaCgpOworCiAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
SURCQ2FsbGJhY2tzPjo6cmVmOwogICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkNh
bGxiYWNrcz46OmRlcmVmOwogCkBAIC0xMTEsMTIgKzExNCwxNiBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgSURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwg
SURCVHJhbnNhY3Rpb24qKTsKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50
Pik7Ci0gICAgYm9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Q7CiAKICAgICBSZWZQdHI8SURCQW55PiBtX3Jl
c3VsdDsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2Vycm9yQ29kZTsKICAgICBTdHJpbmcgbV9lcnJv
ck1lc3NhZ2U7CiAgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOworICAgIGJvb2wgbV9jb250
ZXh0U3RvcHBlZDsKKyAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247Cisg
ICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgYm9vbCBtX3JlcXVlc3RBYm9ydGVkOyAv
LyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVuIHJlY2VpdmUgYXN5bmMgb25zdWNj
ZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KIAogcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldApA
QCAtMTMwLDExICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3Vy
Y2U7CiAgICAgY29uc3QgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSBt
X3Rhc2tUeXBlOwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKIAot
ICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwotICAgIGJvb2wgbV9yZXF1ZXN0QWJvcnRlZDsg
Ly8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rpb24gdGhlbiByZWNlaXZlIGFzeW5jIG9uc3Vj
Y2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCi0gICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOwogICAg
IFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9lbnF1ZXVlZEV2ZW50czsKIAogICAgIC8vIE9ubHkg
dXNlZCBpZiB0aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBhIGN1cnNvci4KQEAgLTE0NCw2ICsxNDcs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxJREJLZXk+IG1fY3Vyc29yS2V5OwogICAgIFJlZlB0
cjxJREJLZXk+IG1fY3Vyc29yUHJpbWFyeUtleTsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtX2N1cnNvclZhbHVlOworICAgIGJvb2wgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2
ZW50OwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApp
bmRleCBjYjI5ZDAwZjhkMThhMDFiOWQ3MjFlMDUwNTJmYzNmZDRiMmQyZmM0Li41MDIxNmY2YjNh
OWM5ODk3OWZhNjk3YzU5ODNkMDQyOWI1NDE4MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgorI2luY2x1ZGUgIklEQk9w
ZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgi
CiAjaW5jbHVkZSAiSURCVHJhY2luZy5oIgogCkBAIC00Myw3ICs0NCwxMyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1v
ZGUsIElEQkRhdGFiYXNlKiBkYikKIHsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5z
YWN0aW9uKGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbihjb250ZXh0LCBiYWNrZW5kLCBtb2Rl
LCBkYikpKTsKKyAgICBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0ID0gMDsKKyAgICBy
ZXR1cm4gY3JlYXRlKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KTsK
K30KKworUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSwgSURC
RGF0YWJhc2UqIGRiLCBJREJPcGVuREJSZXF1ZXN0KiBvcGVuREJSZXF1ZXN0KQoreworICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0
aW9uKGNvbnRleHQsIGJhY2tlbmQsIG1vZGUsIGRiLCBvcGVuREJSZXF1ZXN0KSkpOwogICAgIHRy
YW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucmVs
ZWFzZSgpOwogfQpAQCAtNzksMTAgKzg2LDExIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJh
bnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogfQogCiAKLUlEQlRyYW5zYWN0aW9uOjpJ
REJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNhY3Rpb246
Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQorSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6TW9kZSBtb2Rl
LCBJREJEYXRhYmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVlc3QpCiAgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKICAgICAsIG1fYmFja2VuZChiYWNrZW5k
KQogICAgICwgbV9kYXRhYmFzZShkYikKKyAgICAsIG1fb3BlbkRCUmVxdWVzdChvcGVuREJSZXF1
ZXN0KQogICAgICwgbV9tb2RlKG1vZGUpCiAgICAgLCBtX2FjdGl2ZSh0cnVlKQogICAgICwgbV9z
dGF0ZShVbnVzZWQpCkBAIC0zNzcsNyArMzg1LDE0IEBAIGJvb2wgSURCVHJhbnNhY3Rpb246OmRp
c3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAKICAgICAvLyBGSVhNRTogV2hl
biB3ZSBhbGxvdyBjdXN0b20gZXZlbnQgZGlzcGF0Y2hpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBu
ZWVkIHRvIGNoYW5nZS4KICAgICBBU1NFUlQoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Y29tcGxldGVFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50
KTsKLSAgICByZXR1cm4gSURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwg
dGFyZ2V0cyk7CisgICAgYm9vbCByZXR1cm5WYWx1ZSA9IElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2goZXZlbnQuZ2V0KCksIHRhcmdldHMpOworICAgIC8vIEZJWE1FOiBUcnkgdG8gY29uc3Ry
dWN0IGEgdGVzdCB3aGVyZSB8dGhpc3wgb3V0bGl2ZXMgb3BlbkRCUmVxdWVzdCBhbmQgd2UKKyAg
ICAvLyBnZXQgYSBjcmFzaC4KKyAgICBpZiAobV9vcGVuREJSZXF1ZXN0KSB7CisgICAgICAgIEFT
U0VSVChpc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAgICAgIG1fb3BlbkRCUmVxdWVzdC0+dHJhbnNh
Y3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCgpOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFs
dWU7CiB9CiAKIGJvb2wgSURCVHJhbnNhY3Rpb246OmNhblN1c3BlbmQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXgg
MWY3YWY3ZGFkMWJlOTQ4ZjZiNDE5NTdmNzllNWY2ODc0MmI5OWFmMC4uMDA1ZTM3MzYzMGE0ZDJm
ZjJlYmFmZDgxZWUzNmVhMGM5ODlhOTIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIElEQkN1cnNvcjsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3Mg
SURCT2JqZWN0U3RvcmU7CitjbGFzcyBJREJPcGVuREJSZXF1ZXN0OwogCiBjbGFzcyBJREJUcmFu
c2FjdGlvbiA6IHB1YmxpYyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcywgcHVibGljIEV2ZW50VGFy
Z2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTU2LDYgKzU3LDcgQEAg
cHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4sIE1vZGUsIElEQkRhdGFiYXNlKik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBNb2RlLCBJREJEYXRhYmFz
ZSosIElEQk9wZW5EQlJlcXVlc3QqKTsKICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbigpOwog
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbW9kZVJlYWRPbmx5KCk7CkBAIC0xMTks
NyArMTIxLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25D
YWxsYmFja3M+OjpkZXJlZjsKIAogcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+LCBNb2RlLCBJREJEYXRhYmFzZSopOworICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4s
IE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVzdCopOwogCiAgICAgdm9pZCBlbnF1
ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIHZvaWQgY2xvc2VPcGVuQ3Vyc29ycygp
OwpAQCAtMTQyLDYgKzE0NCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmQ7CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBt
X2RhdGFiYXNlOworICAgIElEQk9wZW5EQlJlcXVlc3QqIG1fb3BlbkRCUmVxdWVzdDsKICAgICBj
b25zdCBNb2RlIG1fbW9kZTsKICAgICBib29sIG1fYWN0aXZlOwogICAgIFN0YXRlIG1fc3RhdGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRl
TmVlZGVkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTQyMDI4MGU0NjQwYzIxNGNlMTFiMTU5
YjIwYTVmYjc4ZjM3OTIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQlVwZ3JhZGVOZWVkZWRFdmVu
dC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiSURCQW55LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
c1JlZlB0cjxJREJVcGdyYWRlTmVlZGVkRXZlbnQ+IElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3Jl
YXRlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlVwZ3JhZGVO
ZWVkZWRFdmVudChvbGRWZXJzaW9uLCBuZXdWZXJzaW9uLCBldmVudFR5cGUpKTsKK30KKworSURC
VXBncmFkZU5lZWRlZEV2ZW50OjpJREJVcGdyYWRlTmVlZGVkRXZlbnQoaW50NjRfdCBvbGRWZXJz
aW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQor
ICAgIDogRXZlbnQoZXZlbnRUeXBlLCBmYWxzZSAvKmNhbkJ1YmJsZSovLCBmYWxzZSAvKmNhbmNl
bGFibGUqLykKKyAgICAsIG1fb2xkVmVyc2lvbihvbGRWZXJzaW9uKQorICAgICwgbV9uZXdWZXJz
aW9uKG5ld1ZlcnNpb24pCit7Cit9CisKK0lEQlVwZ3JhZGVOZWVkZWRFdmVudDo6fklEQlVwZ3Jh
ZGVOZWVkZWRFdmVudCgpCit7Cit9CisKK2ludDY0X3QgSURCVXBncmFkZU5lZWRlZEV2ZW50Ojpv
bGRWZXJzaW9uKCkKK3sKKyAgICByZXR1cm4gbV9vbGRWZXJzaW9uOworfQorCitpbnQ2NF90IElE
QlVwZ3JhZGVOZWVkZWRFdmVudDo6bmV3VmVyc2lvbigpCit7CisgICAgcmV0dXJuIG1fbmV3VmVy
c2lvbjsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBJREJVcGdyYWRlTmVlZGVkRXZlbnQ6Omlu
dGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNl
Rm9ySURCVXBncmFkZU5lZWRlZEV2ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VXBncmFkZU5lZWRlZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJVcGdyYWRlTmVlZGVkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Nzg1NjY0ZjAzODlhMWIwNDU3Yzg5
ZWMzNDFmYjBlZTlkZjBmNGIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmgKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgSURCVXBncmFkZU5lZWRlZEV2ZW50X2gKKyNkZWZpbmUgSURCVXBncmFk
ZU5lZWRlZEV2ZW50X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVk
ZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCQW55OworCitjbGFzcyBJ
REJVcGdyYWRlTmVlZGVkRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElEQlVwZ3JhZGVOZWVkZWRFdmVudD4gY3JlYXRlKGludDY0X3Qgb2xkVmVy
c2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgaW50NjRfdCBuZXdWZXJz
aW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSA9IEF0b21pY1N0cmluZygpKTsKKyAgICB2aXJ0dWFsIH5JREJVcGdyYWRl
TmVlZGVkRXZlbnQoKTsKKworICAgIHZpcnR1YWwgaW50NjRfdCBvbGRWZXJzaW9uKCk7CisgICAg
dmlydHVhbCBpbnQ2NF90IG5ld1ZlcnNpb24oKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgSURCVXBncmFk
ZU5lZWRlZEV2ZW50KGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uLCBjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CisKKyAgICBpbnQ2NF90IG1fb2xkVmVyc2lvbjsK
KyAgICBpbnQ2NF90IG1fbmV3VmVyc2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCVXBn
cmFkZU5lZWRlZEV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyOTk5NTQ4
ZjQ2MTI2ZGY2YjFiMDY2OTgxMDAxNWM2MmMyN2ViZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaWRsCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFLAorICAgICAgICBJbnRlcmZh
Y2VOYW1lPUlEQlZlcnNpb25DaGFuZ2VFdmVudAorICAgIF0gSURCVXBncmFkZU5lZWRlZEV2ZW50
IDogRXZlbnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IG9sZFZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxv
bmcgbmV3VmVyc2lvbjsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGI3MDM3NDBmYWQy
ZWRkMTZiMmM4YTBjNTFlMzQ1ZTAzZDA2ZmUzZmMuLjdmODBjNWNmN2UwZWJlYWU3NzI4MzllYjE0
MmEyMjFmMjgzNGQ2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTgyMyw4ICs4MjMsMTAgQEAKICAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3Jh
ZGVOZWVkZWRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZl
cnNpb25DaGFuZ2VFdmVudC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVk
ZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5pZGwnLApAQCAtMTUxNiw2ICsxNTE4LDgg
QEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZUJhY2tlbmRJbnRlcmZhY2UuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCUGVu
ZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAnLApAQCAtMTUyOSw2ICsxNTMzLDggQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVk
RXZlbnQuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVl
ZGVkRXZlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNo
YW5nZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lv
bkNoYW5nZUV2ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA2ZDBhMTA1
NzM4ZGE5ZTgwYTVhODMzOTcwN2I0MzFhZDkwMjNkYTMyLi5hMmZhZWMxMjgzNGJiYTg0ODhjNzRm
ZmYzZGFkODUxNTgwZjYwOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTExNSw2ICsx
MTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8odGV4dElucHV0KSBcCiAgICAg
bWFjcm8odW5sb2FkKSBcCiAgICAgbWFjcm8odXBkYXRlcmVhZHkpIFwKKyAgICBtYWNybyh1cGdy
YWRlbmVlZGVkKSBcCiAgICAgbWFjcm8odmVyc2lvbmNoYW5nZSkgXAogICAgIG1hY3JvKHdlYmtp
dHZpc2liaWxpdHljaGFuZ2UpIFwKICAgICBtYWNybyh3cml0ZSkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbgppbmRleCA1ZGE1N2ZmYzZjZjQzMjY3YTVlYzNiZTMzNzU5NWI2Y2ZlNTRmODI4Li4y
MmFhYTdiMDcwYzRiYjQyYjE0MmUxMWJkYzliMzc5YjU3YzQ1ZjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgpAQCAtMzksNiArMzksNyBAQCBTdG9yYWdlRXZlbnQKIFNWR0V2ZW50cyBpbnRl
cmZhY2VOYW1lPUV2ZW50LCBjb25kaXRpb25hbD1TVkcKIFNWR1pvb21FdmVudCBjb25kaXRpb25h
bD1TVkcKIFNWR1pvb21FdmVudHMgaW50ZXJmYWNlTmFtZT1TVkdab29tRXZlbnQsIGNvbmRpdGlv
bmFsPVNWRworSURCVXBncmFkZU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJB
U0UKIElEQlZlcnNpb25DaGFuZ2VFdmVudCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBU
b3VjaEV2ZW50IGNvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywgcnVudGltZUNvbmRpdGlvbmFsPXRv
dWNoRW5hYmxlZAogRGV2aWNlTW90aW9uRXZlbnQgY29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFU
SU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5Lmlu
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2ZDk3MmMz
OTZkNzYzMzJlMWEwYjI2NTczMWFlM2RiOGE0OWYyMWU5Li43OTFiZDRlZGE1Y2EzN2FmNDU3ODM2
MzQ5Nzc5NTEzMDc0YzJkMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rv
cnkuaW4KQEAgLTksNiArOSw3IEBAIEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFs
PUJMT0IKIEZpbGVXcml0ZXIgY29uZGl0aW9uYWw9RklMRV9TWVNURU0KIElEQkRhdGFiYXNlIGNv
bmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKK0lEQk9wZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9
SU5ERVhFRF9EQVRBQkFTRQogSURCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNF
CiBJREJUcmFuc2FjdGlvbiBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJWZXJzaW9u
Q2hhbmdlUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCAz
MmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1YTY0MzM4ZjFhYjc1MjE1Li5lMTViMzBkOWU0M2YxNTUz
ZDQxNWE4MjRlNGExNTQ1OGZjNDY0MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9u
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lv
biwgaW50NjRfdCBuZXdWZXJzaW9uKSB7IH0KIHByaXZhdGU6CiAgICAgSW5zcGVjdG9ySURCRGF0
YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CkBAIC0yMzcsNyArMjM4LDcgQEAgcHJpdmF0ZToKIHZv
aWQgRXhlY3V0YWJsZVdpdGhEYXRhYmFzZTo6c3RhcnQoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UqIGlkYkZhY3RvcnksIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpCiB7CiAg
ICAgUmVmUHRyPE9wZW5EYXRhYmFzZUNhbGxiYWNrPiBjYWxsYmFjayA9IE9wZW5EYXRhYmFzZUNh
bGxiYWNrOjpjcmVhdGUodGhpcyk7Ci0gICAgaWRiRmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUs
IGNhbGxiYWNrLmdldCgpLCBzZWN1cml0eU9yaWdpbiwgY29udGV4dCwgU3RyaW5nKCkpOworICAg
IGlkYkZhY3RvcnktPm9wZW4oZGF0YWJhc2VOYW1lLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0lu
dFZlcnNpb24sIGNhbGxiYWNrLmdldCgpLCBzZWN1cml0eU9yaWdpbiwgY29udGV4dCwgU3RyaW5n
KCkpOwogfQogCiBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IHRyYW5zYWN0aW9uRm9yRGF0YWJhc2UoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKiBp
ZGJEYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggN2QyYzljZjk5
YzEyM2YwOWE0NDE0MzNmOTAwODAwMjRjZDA5NzhiMS4uMTkzYmYyYjVmNmM2NjZjN2JkNTA2MmFk
NDQ3NDQxNWJmYjMwNDI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMTMwLDYgKzEzMCwxNiBAQCB2b2lkIElEQkNhbGxiYWNr
c1Byb3h5OjpvbkJsb2NrZWQoKQogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKIH0KIAor
dm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9u
KQoreworICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoZXhpc3RpbmdWZXJzaW9uKTsKK30KKwor
dm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lv
biwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9u
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2UpCit7Cisg
ICAgbV9jYWxsYmFja3MtPm9uVXBncmFkZU5lZWRlZChvbGRWZXJzaW9uLCBuZXcgV2ViSURCVHJh
bnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKSwgbmV3IFdlYklEQkRhdGFiYXNlSW1wbChkYXRhYmFz
ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNr
c1Byb3h5LmgKaW5kZXggNGM3MGI2NjZlYWM4MTNmOWI5OGVjZjg3MmU3OGNkMjQ4NmQ2N2UxYS4u
ODI1NzU4YWFkZTkzZjQxZjI2MjkzMDM2OGJkOTY2NjBmZTUyYTUyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCkBAIC01Niw2ICs1Niw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktleT4g
PiYga2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+ID4mIHByaW1hcnlL
ZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
PiYgdmFsdWVzKTsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCk7CisgICAgdmlydHVhbCB2
b2lkIG9uQmxvY2tlZChpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbik7CisgICAgdmlydHVhbCB2b2lk
IG9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+KTsKIAogcHJpdmF0ZToKICAgICBJREJDYWxsYmFja3NQ
cm94eShQYXNzT3duUHRyPFdlYklEQkNhbGxiYWNrcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA4
MTZmYWY2YzRkZTcwYWU2OTI2OTMwZDBkZTUwZTBlZTJkMTE3ODViLi4wMTllNTliYTA2MWYwZmI4
NGUzYTkzYWI4OTVmYmE5YmVkNWQxYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcApAQCAtNDgsNiArNDgs
MTEgQEAgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6fklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkoKQogewogfQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNo
YW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbikKK3sKKyAgICBtX2Nh
bGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOworfQorCiB2
b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJp
bmcmIHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5n
ZShyZXF1ZXN0ZWRWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAppbmRleCBhZmZkY2U3N2Q1ZDk1OGRjMDBl
MGY2ZjgwYWNmZmI4MDEyOTU4YjNiLi45OTk1YWJkMmI2YWQ5ZDAyNGUxNTJmMTBkMGVlNjAzMWM4
NWMzYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFz
ZUNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb25W
ZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbik7CisgICAgdmlydHVh
bCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVy
c2lvbik7CiAKIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eShQYXNzT3du
UHRyPFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCmluZGV4IGMxYmVjMTA3N2Q2
YmNmNDg3ZTk5NDFlMGVkMjFjNmNiYzYxODYwMTkuLmJhYmNiYWUxODQwOWM1ZGQyNTkyYzBkZmQ5
MjMzMjZmYmY2MGU5NGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBJREJG
YWN0b3J5QmFja2VuZFByb3h5OjpnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmEKIH0KIAogCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tz
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQordm9pZCBJREJGYWN0
b3J5QmFja2VuZFByb3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9u
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQogewogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcyhwcnBDYWxsYmFja3MpOwogICAgIFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1
cml0eU9yaWdpbik7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBJREJGYWN0b3J5QmFja2VuZFBy
b3h5OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHAK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IGdldFdlYkZy
YW1lKGNvbnRleHQpOwotICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1lLCBuZXcgV2ViSURC
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKKyAg
ICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgdmVyc2lvbiwgbmV3IFdlYklEQkNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7CiB9CiAKIHZvaWQg
SURCRmFjdG9yeUJhY2tlbmRQcm94eTo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCmluZGV4IDIyYTZmNTJhODY5ODE2YzgwNTY2
OGQ2ODRkMGE3YmZmZmMyNmFlNjkuLmMwZGU5MTBhOTJjZGVhOTFhM2QzYTFjNTMwYTI4MDdjNWFi
ZmFhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlC
YWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklE
QkZhY3RvcnlCYWNrZW5kUHJveHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5h
bWVzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIGRhdGFEaXIpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgZGF0YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tz
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmNwcAppbmRleCAwODNkYmNjYmUyNjc1ZjIwOTliNTM1NTdmNDAxNjhlM2UwODNkNzY3
Li4yY2I5MGVhNDZlNjNhYWE2NTI4Mzk2NWExYzRmZWU0YzA5NTIwYTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtNDgs
NiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSURCQ2FsbGJhY2tzSW1wbDo6V2Vi
SURCQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogICAg
IDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQorICAgICwgbV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5
KGZhbHNlKQogewogfQogCkBAIC03Miw2ICs3MywxMCBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uU3VjY2VzcyhXZWJJREJDdXJzb3IqIGN1cnNvciwgY29uc3QgV2ViSURCS2V5JiBrZXks
CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKiB3
ZWJLaXRJbnN0YW5jZSkKIHsKKyAgICBpZiAobV9kaWRDcmVhdGVEYXRhYmFzZVByb3h5KSB7Cisg
ICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihzdGF0aWNfY2FzdDxXZWJJREJEYXRhYmFzZSo+KDApKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cih3ZWJLaXRJbnN0YW5jZSkpKTsKIH0KIApAQCAt
MTA1LDYgKzExMCwxNyBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCgpCiAg
ICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZCgpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0lt
cGw6Om9uQmxvY2tlZChsb25nIGxvbmcgb2xkVmVyc2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+
b25CbG9ja2VkKG9sZFZlcnNpb24pOworfQorCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
VXBncmFkZU5lZWRlZChsb25nIGxvbmcgb2xkVmVyc2lvbiwgV2ViSURCVHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBXZWJJREJEYXRhYmFzZSogZGF0YWJhc2UpCit7CisgICAgbV9kaWRDcmVhdGVE
YXRhYmFzZVByb3h5ID0gdHJ1ZTsKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9s
ZFZlcnNpb24sIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUoYWRvcHRQdHIodHJh
bnNhY3Rpb24pKSwgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRh
YmFzZSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkNhbGxiYWNrc0ltcGwuaAppbmRleCAzMGQ3NDM2YzZhNTlmNDg5NjI5MDUyNjAyYWY4OTM4NDgz
MmIzOTI4Li4zM2NkMjAyOWZhY2ZjZDUyOTVkZDY2NDRhZDAxY2M3ZGI3Njk5MDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCkBAIC01
MSw5ICs1MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJJREJL
ZXlQYXRoJik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmLCBj
b25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25C
bG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRl
TmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRh
dGFiYXNlKik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4g
bV9jYWxsYmFja3M7CisgICAgYm9vbCBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IGZmMGU4OTg2NGIy
MWE2NDY4OWIwMzEyNmNhYWYzZmU1NjU5ZmFmMzEuLjE0NzU3YmFjNjcwZDlkZTRmYWZhNDllYWE2
ODllZDljNGRhYmJlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNDQsNiArNDQsMTEgQEAg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjp+V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
KCkKIHsKIH0KIAordm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNo
YW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pCit7CisgICAg
bV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKK30K
Kwogdm9pZCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShjb25z
dCBXZWJTdHJpbmcmIHZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5n
ZSh2ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggMjFjM2RjN2M1YWM0YWQwYmVhOGRmMjkx
NmViYjNmODhjNjdmZjA1Zi4uMTg1N2NhNjU4ZDMwZmMyNjAwNTIxYTZkYWQxOTMxMzEzODU3Y2Y5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2Fs
bGJhY2tzPik7CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBs
b25nIGxvbmcgbmV3VmVyc2lvbik7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShj
b25zdCBXZWJTdHJpbmcmIHZlcnNpb24pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggYmM2ZDA5ZmExZmI5
NzBjMjk3ZTE3N2EyMTU0ZWU3MTAxOGZhZmZmNy4uOTM0MzI4MWNmNGQwYWYxN2NiNmMzMjI1MDgx
ZGY0MDcxZGFlODczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRhdGFiYXNlSW1wbChQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VCYWNrZW5kKQogICAgIDogbV9kYXRhYmFz
ZUJhY2tlbmQoZGF0YWJhc2VCYWNrZW5kKQorICAgICwgbV9jbG9zZVBlbmRpbmcoZmFsc2UpCiB7
CiB9CiAKQEAgLTk0LDggKzk1LDEwIEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSgp
CiB7CiAgICAgLy8gVXNlIHRoZSBjYWxsYmFja3MgdGhhdCA6Om9wZW4gZ2F2ZSB1cyBzbyB0aGF0
IHRoZSBiYWNrZW5kIGluCiAgICAgLy8gbXVsdGktcHJvY2VzcyBjaHJvbWl1bSBrbm93cyB3aGlj
aCBkYXRhYmFzZSBjb25uZWN0aW9uIGlzIGNsb3NpbmcuCi0gICAgaWYgKCFtX2RhdGFiYXNlQ2Fs
bGJhY2tzKQorICAgIGlmICghbV9kYXRhYmFzZUNhbGxiYWNrcykgeworICAgICAgICBtX2Nsb3Nl
UGVuZGluZyA9IHRydWU7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9kYXRhYmFzZUJh
Y2tlbmQtPmNsb3NlKG1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIG1fZGF0YWJhc2VDYWxsYmFj
a3MgPSAwOwogfQpAQCAtMTA1LDYgKzEwOCw4IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpv
cGVuKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MpCiAgICAgQVNTRVJUKCFtX2Rh
dGFiYXNlQ2FsbGJhY2tzKTsKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gSURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwogICAgIG1fZGF0YWJh
c2VCYWNrZW5kLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKG1fZGF0YWJhc2VDYWxsYmFja3Mp
OworICAgIGlmIChtX2Nsb3NlUGVuZGluZykKKyAgICAgICAgY2xvc2UoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oCmluZGV4IDRmODI1MTgyMGE0OWJiZGZkZTUyZmFiOTFlZmZhNWFlYzA4YmE0
NmQuLjE0MDljYjY1ZjA2NWZiMzVkNDAwNzAzZjZjN2JlNzIyNGRkMDAwMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC02NCw2ICs2
NCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBtX2RhdGFiYXNlQmFja2VuZDsKICAgICBXVEY6OlJlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5PiBtX2RhdGFiYXNlQ2FsbGJhY2tzOworICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBmbGFnIHdoZW4gd2UgY29uc29saWRhdGUgdHdvLXBoYXNlIG9w
ZW4uCisgICAgLy8gaHR0cDovL3drYi51Zy85MDQxMQorICAgIGJvb2wgbV9jbG9zZVBlbmRpbmc7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcAppbmRleCBkMTRhYzcxZTE4Yzg1OTMxNTJlZmRm
ZDVjODM5ZTAxNzIwZTNmZmRjLi5hZDcxNDc2YjdlYmI0Njg2ZWE4MjViOTYyMTkxNmU2M2IyOTBh
Yzc3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuY3BwCkBAIC02MywxNyArNjMsOSBAQCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRh
YmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1f
aWRiRmFjdG9yeUJhY2tlbmQtPmdldERhdGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAotCi12
b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURC
Q2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdl
YkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQotewotICAgIG1faWRiRmFjdG9yeUJh
Y2tlbmQtPm9wZW4obmFtZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxs
YmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKLX0KLQogdm9pZCBXZWJJREJGYWN0
b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBX
ZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdp
biwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCiB7Ci0gICAgLy8gRklYTUU6
IFBhc3MgdmVyc2lvbiBhbG9uZyB3aGVuIFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJm
YWNlCi0gICAgLy8gaGFzIGFuIG9wZW4gbWV0aG9kIHRoYXQgYWNjZXB0cyBpdC4KLSAgICBtX2lk
YkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRv
cHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7CisgICAgbV9pZGJG
YWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCB2ZXJzaW9uLCBJREJDYWxsYmFja3NQcm94eTo6Y3Jl
YXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQog
CiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCmluZGV4IGZhNDM4ZDc2
NDhlMzQ2NGM1YTFjYmQ1Y2NmNTdjZmYwZTU2ZjMyODUuLjgzM2VlYjU5MTI1OWI4NTNjMzIxZmQx
MThmMDk0YTViOGE3Yzg4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRmFjdG9yeUltcGwuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViSURCRmFjdG9yeUltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVz
KFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4m
LCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lk
IG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgV2ViSURCQ2Fs
bGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0
cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4m
LCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRl
eCAzZmMxMDUzMDdiZjU3ZTA1NDEzZTlkMTcyYzE1NTljNTQwOGJjN2NhLi4xZDM5NTA5NmFhZGIz
YTViM2RlOWI3MGRhYjYwZjMxODljZmJhOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC0xMDIsNyArMTAy
LDggQEAgVEVTVChJREJBYm9ydFRlc3QsIFRoZVRlc3QpCiAgICAgY29uc3QgU3RyaW5nJiBuYW1l
ID0gImRiIG5hbWUiOwogICAgIE1vY2tJREJDYWxsYmFja3MgY2FsbGJhY2tzOwogICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSgiaHR0cCIs
ICJsb2NhbGhvc3QiLCA4MSk7Ci0gICAgZmFjdG9yeS0+b3BlbihuYW1lLCAmY2FsbGJhY2tzLCBv
cmlnaW4sIDAgLypGcmFtZSovLCBTdHJpbmcoKSAvKnBhdGgqLyk7CisgICAgY29uc3QgaW50NjRf
dCBEdW1teVZlcnNpb24gPSAyOworICAgIGZhY3RvcnktPm9wZW4obmFtZSwgRHVtbXlWZXJzaW9u
LCAmY2FsbGJhY2tzLCBvcmlnaW4sIDAgLypGcmFtZSovLCBTdHJpbmcoKSAvKnBhdGgqLyk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCAyMjc3ODg3NWZhOTM0MDIwNzg3
MzAxMzhlMTNhMzQ2MTZmNDM1OTEyLi44NjA1YzBmMWFjNjI4N2ZmZGM4MjgxOGU1YTNlMDU2MzRh
OGIyYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFi
YXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
RGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTEwMCw2ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkpOyB9CiAgICAgdmly
dHVhbCB+RmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
VmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pIE9WRVJSSURFIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5l
d1ZlcnNpb24pIE9WRVJSSURFIHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURCRGF0YWJhc2VDYWxs
YmFja3MoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDU0NGE2MzIyMmUxMGFhYjQwYjU5M2I5Mzc2MDcxZjU2
YTUxOTNhNi4uZDk2NGQxMDUxNWZjMTNlYzc5Mjk0MTA4NTA0MTEzYjI5NjczZDRiMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDEyLTA4LTE0ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZyb250ZW5kIGFuZCBwbHVtYmluZyBmb3Ig
aW50ZWdlciB2ZXJzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTI4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11
cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFuZC1zZXR2ZXJzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVudHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25j
b21wbGV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlkLXNldHZlcnNpb24t
aGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dDoK
KwogMjAxMi0wOC0xNiAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBUeXBlZEFycmF5cyB0byB0aHJvdyBSYW5nZUVycm9yIG9y
IHNpbWlsYXIgaW5zdGVhZCBvZiBJTkRFWF9TSVpFX0VSUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVu
ZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CmluZGV4IDk5
MDgzY2Q3N2E5ZDUwNmIxZjk2NWM4ZDM0MDVhN2Q4OTJhYTZhNjMuLjVhMDU4Y2YxMjY1OWRjYWE0
YmYxNDU4OGVlODQ1NjlhNmM3ZjVjNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFi
b3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKQEAgLTExLDcgKzExLDEz
IEBAIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
dXBncmFkZU5lZWRlZAogRklYTUU6IFRoaXMgc2hvdWxkIGdldCBhbiBlcnJvciBldmVudCBvZiB0
eXBlIEFib3J0RXJyb3IKIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
Ci1GQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKwordXBncmFkZU5l
ZWRlZCgpOgorUEFTUyBkYi52ZXJzaW9uIGlzIDIKK3RyYW5zYWN0aW9uLmFib3J0KCkKKworb25B
Ym9ydCgpOgorRkFJTCBldmVudC50YXJnZXQuZGIudmVyc2lvbiBzaG91bGQgYmUgMC4gV2FzIDIu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZl
cnNpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKaW5kZXggZjIyMmNhMTVkMDljNzRkM2Ey
ZjQ0Nzk4ZDIwYmRjMThlNTMyNTE2Zi4uMDRmMjgxYWFkODQ3ZTg4Njg2MmY3MzlhZTRjZmEyOTQ3
MjcyNjJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0dmVyc2lvbi1leHBlY3RlZC50eHQKQEAgLTMz
LDE3ICszMyw1NyBAQCBQQVNTIGRiLnZlcnNpb24gaXMgInNvbWUgdmVyc2lvbiIKIGRiLmNsb3Nl
KCkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5l
ZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMgIltv
YmplY3QgSURCRGF0YWJhc2VdIgorUEFTUyBTdHJpbmcocmVxdWVzdC50cmFuc2FjdGlvbikgaXMg
IltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorRkFJTCBldmVudC5vbGRWZXJzaW9uIHNob3VsZCBi
ZSBzb21lIHZlcnNpb24gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIDAgKG9mIHR5cGUgbnVtYmVyKS4K
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCityZXF1ZXN0LnRyYW5zYWN0aW9uLm9uY29tcGxl
dGUgPSB0cmFuc2FjdGlvbkNvbXBsZXRlZAorCit0cmFuc2FjdGlvbkNvbXBsZXRlZCgpOgorZGlk
VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKKwogZmlyc3RPcGVuV2l0aFZlcnNpb24oKToKLUZB
SUwgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFT
UyBkaWRUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAogUEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKIFBBU1MgcmVxdWVz
dC50cmFuc2FjdGlvbiBpcyBudWxsCi1GQUlMIGRiLnZlcnNpb24gc2hvdWxkIGJlIDIgKG9mIHR5
cGUgbnVtYmVyKS4gV2FzIHNvbWUgdmVyc2lvbiAob2YgdHlwZSBzdHJpbmcpLgotRkFJTCBTdHJp
bmcocmVxdWVzdCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2Jq
ZWN0IElEQlJlcXVlc3RdLgorUEFTUyBkYi52ZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5nKHJlcXVl
c3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdIgogcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oInN0cmluZyB2ZXJzaW9uIDIiKQogUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3Qg
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3RdIgogcmVxdWVzdC5vbmVycm9yID0gc2V0VmVyc2lvbk5v
dEFsbG93ZWQKLUZBSUwgU3VjY2VzcyBmdW5jdGlvbiBjYWxsZWQgdW5leHBlY3RlZGx5LgorCitz
ZXRWZXJzaW9uTm90QWxsb3dlZCgpOgorUEFTUyBldmVudC50eXBlIGlzICJlcnJvciIKK3JlcXVl
c3Qud2Via2l0RXJyb3JNZXNzYWdlID0gWW91IGNhbid0IHVzZSB0aGUgc2V0VmVyc2lvbiBmdW5j
dGlvbiBpZiB5b3UndmUgYWxyZWFkeSBzZXQgdGhlIHZlcnNpb24gdGhyb3VnaCBhbiBvcGVuIGNh
bGwuICBUaGUgY3VycmVudCBpbnRlZ2VyIHZlcnNpb24gaXMgMgorZGIuY2xvc2UoKQorcmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMSkKK3JlcXVlc3Qub25lcnJvciA9IGVycm9yV2hl
blRyeWluZ0xvd1ZlcnNpb24KKworZXJyb3JXaGVuVHJ5aW5nTG93VmVyc2lvbigpOgorcmVxdWVz
dC53ZWJraXRFcnJvck1lc3NhZ2UgPSBUaGUgcmVxdWVzdGVkIHZlcnNpb24gKDEpIGlzIGxlc3Mg
dGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbiAoMikuCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA0KQorcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBzZWNvbmRVcGdyYWRlTmVlZGVk
CityZXF1ZXN0Lm9uc3VjY2VzcyA9IHRoaXJkT3BlblN1Y2Nlc3MKKworc2Vjb25kVXBncmFkZU5l
ZWRlZCgpOgorZ290U2Vjb25kVXBncmFkZU5lZWRlZCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVy
c2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNAorCit0aGlyZE9wZW5TdWNjZXNz
KCk6CitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWQgaXMgdHJ1ZQorZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgNAorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKK3JlcXVlc3Qub25zdWNjZXNzID0gZm91cnRoT3BlblN1Y2Nl
c3MKKworZm91cnRoT3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFT
UyBkYi52ZXJzaW9uIGlzIDQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggYmFjM2NjZjJjMzRiZmYw
OTQ5NDNlNjEzZmEwZGI2Mzg3ZGZiYTM5NC4uYmM3MjMzNjFjMDg4YWIxOTVlMDczZDliMzA5ODM3
ODU5ZGVjMzhlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSwxNSArMTEsNDIg
QEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZENh
bGxiYWNrKCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQu
b2xkVmVyc2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorUEFTUyBTdHJpbmco
ZXZlbnQpIGlzICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iCisKIGZpcnN0U3VjY2Vz
c0V2ZW50SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0
cnVlCiBjb25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVy
c2lvbmNoYW5nZSA9IHZlcnNpb25DaGFuZ2VIYW5kbGVyCiBQQVNTIFN0cmluZyhjb25uZWN0aW9u
MSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgMykKIAordmVyc2lvbkNoYW5nZUhhbmRsZXIoKToKK3Nhd1ZlcnNpb25DaGFuZ2VFdmVu
dCA9IHRydWUKK1BBU1MgZXZlbnQudHlwZSBpcyAidmVyc2lvbmNoYW5nZSIKK1BBU1MgU3RyaW5n
KGV2ZW50KSBpcyAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIgorUEFTUyBldmVudC50
YXJnZXQgaXMgY29ubmVjdGlvbjEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2
ZW50Lm5ld1ZlcnNpb24gaXMgMworCitibG9ja2VkRXZlbnRIYW5kbGVyKCk6CitQQVNTIHNhd1Zl
cnNpb25DaGFuZ2VFdmVudCBpcyB0cnVlCitnb3RCbG9ja2VkRXZlbnQgPSB0cnVlCitQQVNTIFN0
cmluZyhldmVudCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIKK1BBU1MgZXZl
bnQub2xkVmVyc2lvbiBpcyAyCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMworUEFTUyBldmVu
dC50eXBlIGlzICJibG9ja2VkIgorY29ubmVjdGlvbjEuY2xvc2UoKQorCitzZWNvbmRVcGdyYWRl
TmVlZGVkRXZlbnRIYW5kbGVyKCk6CitQQVNTIGdvdEJsb2NrZWRFdmVudCBpcyB0cnVlCitnb3RT
ZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCisKIHNlY29uZFN1Y2Nlc3NDYWxsYmFjaygp
OgotRkFJTCBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK1BBU1MgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IGlzIHRydWUKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBjMDYwOWVlNGMwNWExZTdk
YTFhOGU5MWE5ZTlhODg5MzA4ODBkZmYwLi41NTFmOGQ4NmViNmU3NzZkZTYzMTg4YTlhYTAzMTM1
MDA4ZWNiNmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVj
dGVkLnR4dApAQCAtMTAsMTEgKzEwLDI3IEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQogCiAKK3VwZ3JhZGVOZWVk
ZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlz
IDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvYmplY3RzdG9yZScpCit0cmFuc2FjdGlvbiA9IGV2
ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlvbi5vbmNvbXBsZXRlOgorc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK3NldFRpbWVvdXQoY2xvc2VEQiwgMCkKKwogb3BlblN1
Y2Nlc3MoKToKIFBBU1MgZGlkQ2FsbENsb3NlREIgaXMgZmFsc2UKLUZBSUwgc2F3VHJhbnNhY3Rp
b25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlv
bkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJz
aW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4K
K1BBU1MgZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlz
IDEKK2RiLnRyYW5zYWN0aW9uKGRiLm9iamVjdFN0b3JlTmFtZXMpCisKK2Nsb3NlREIoKToKK2Rp
ZENhbGxDbG9zZURCID0gdHJ1ZQorZGIuY2xvc2UoKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBs
ZXRlLWV4cGVjdGVkLnR4dAppbmRleCBlNjVlZGIyNGJkZDZlMjE5NzMyNTI0YzExOTU4YmUyNDBj
OTNmOGNhLi5jM2Y4MDk2ZTlmNGRjYjM2ZTQ2NTEyM2U4Mzg0NWJmNDlmZTJhZDEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9u
Y29tcGxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS1leHBlY3RlZC50eHQKQEAgLTksMTQgKzks
MjQgQEAgZGJuYW1lID0gImludHZlcnNpb24tY2xvc2UtaW4tb25jb21wbGV0ZS5odG1sIgogaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDcpCiAKK3VwZ3JhZGVOZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAor
UEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDcKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCit0
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorCit0cmFuc2FjdGlvbi5vbmNv
bXBsZXRlOgorc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSA9IHRydWUKK2RiLmNsb3NlKCkKKwogb3Bl
blN1Y2Nlc3MoKToKLUZBSUwgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIGlzIHRydWUKIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSA3IChvZiB0eXBlIG51
bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BBU1MgZGIudmVyc2lvbiBpcyA3CiBFeHBl
Y3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnLCAn
cmVhZHdyaXRlJykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1GQUlMIGNvZGUgc2hvdWxk
IGJlIDExLiBXYXMgOC4KLUZBSUwgZW5hbWUgc2hvdWxkIGJlIEludmFsaWRTdGF0ZUVycm9yLiBX
YXMgTm90Rm91bmRFcnJvci4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9z
ZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA2NWVkODVkNDgxOWRkMDBhM2Uw
ZTM0YWM5YzQ0ZDI5Y2M0ZGExZDBiLi4xOGYzM2I4YjQ2ZTJlYjU0MmNjYjk0ODE4OTFjYmVhODNk
YWUwMzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQKQEAgLTEwLDEyICsxMCwyMiBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAogCit1cGdyYWRlTmVl
ZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBp
cyA3Cit0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ29zJykKK2RiLmNsb3NlKCkKKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nh
d1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCisKIG9wZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJh
bnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwg
ZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0
cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignb3MnKQotRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiA4
CitGQUlMIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJykgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAxMQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRl
bGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZWYxNTNkMGQ5NGUyMDhjMWYz
YTRlYTRjYmI2ZWRhODVjOTdiM2I4OS4uNTI4YmU3NjFhMjllMjA5YTMwN2E0YWNkMzYzMWYxOTQ4
NThjMzAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAt
NDYsNiArNDYsMTAgQEAgY29ubmVjdGlvbjEuY2xvc2UoKQogCiBkZWxldGVEYXRhYmFzZVN1Y2Nl
c3NDYWxsYmFjaygpOgogCit1cGdyYWRlTmVlZGVkQ2FsbGJhY2soKToKK1BBU1MgZXZlbnQubmV3
VmVyc2lvbiBpcyAxCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMAorCiBvcGVuV2l0aFZlcnNp
b25TdWNjZXNzQ2FsbGJhY2soKToKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9y
ZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQt
c2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1z
aWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IGU3NGU1YWE3ZmJhYzY4ZmE1MWZkZGE1MWE1
NGZmZTUzZjZiOWNhNTguLmQyOGNjN2ZkMDExOWI2NzEwM2JkMzljMTYwZGM5YzQ3ZmQxMzg4ZmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52
YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9u
LWhhcy1uby1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xMSw4ICsxMSwxMyBAQCBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogZGVsZXRlU3VjY2VzcygpOgogcmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKIAorZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2so
KToKK2dvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFTUyBldmVudC5vbGRWZXJz
aW9uIGlzIDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyAyCisKIGZpcnN0U3VjY2Vzc0V2ZW50
SGFuZGxlcigpOgotRkFJTCBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBzaG91bGQgYmUgdHJ1
ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBj
b25uZWN0aW9uMSA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIGNvbm5lY3Rpb24xLm9udmVyc2lvbmNo
YW5nZSA9IHVuZXhwZWN0ZWRWZXJzaW9uQ2hhbmdlQ2FsbGJhY2sKIFBBU1MgU3RyaW5nKGNvbm5l
Y3Rpb24xKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCkBAIC0yNCw3ICsyOSwxMyBAQCByZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbicpCiByZXF1ZXN0Lm9uZXJyb3IgPSBzZXRWZXJz
aW9uRXJyb3IKIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjawog
cmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrCi1GQUlMIG9udmVy
c2lvbmNoYW5nZSBjYWxsZWQgdW5leHBlY3RlZGx5CisKK3NldFZlcnNpb25FcnJvcigpOgorT3Bl
biB1cCBhIG5ldyBkYiB0byBlbnN1cmUgdGhhdCBpZiBjb25uZWN0aW9uMSB3ZXJlIHRvIGdldCBh
IHZlcnNpb25jaGFuZ2UgZXZlbnQsIGl0IHdpbGwgYmUgZGVsaXZlcmVkIGJlZm9yZSB0aGUgdGVz
dCBmaW5pc2hlcworbmV3X2RiID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzInKQorbmV3X2Ri
Lm9uc3VjY2VzcyA9IG5ld0RCU3VjY2VzcworCituZXdEQlN1Y2Nlc3MoKToKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1l
eHBlY3RlZC50eHQKaW5kZXggNjk5MjA5YWY3N2QzMWEyYWVkY2JmYTRkNDMxYjkzZGIxYWUxMTJk
ZC4uY2VmZjA5NWMzZjYzOTA3Njc5MzY5NGQxNTdlNmZhMTMyMDFiMzY3YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1sb25nLXF1ZXVlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxv
bmctcXVldWUtZXhwZWN0ZWQudHh0CkBAIC02NSw4ICs2NSwxMyBAQCBGQUlMIGV2ZW50Lm9sZFZl
cnNpb24gc2hvdWxkIGJlIG5vbi1udWxsLiBXYXMgdW5kZWZpbmVkCiBGQUlMIGV2ZW50Lm5ld1Zl
cnNpb24gc2hvdWxkIGJlIG51bGwgKG9mIHR5cGUgb2JqZWN0KS4gV2FzIHVuZGVmaW5lZCAob2Yg
dHlwZSB1bmRlZmluZWQpLgogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzIG51bGwKIAordXBn
cmFkZU5lZWRlZENhbGxiYWNrKCk6Citnb3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCitQQVNT
IGV2ZW50Lm5ld1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKKwogb3Bl
bldpdGhWZXJzaW9uU3VjY2Vzc0NhbGxiYWNrKCk6Ci1GQUlMIGdvdFVwZ3JhZGVOZWVkZWRFdmVu
dCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBnb3RVcGdyYWRlTmVlZGVkRXZlbnQg
aXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3Ro
IGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9w
ZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCAzMzcwY2FkMDA0NzE2YzNkNDljOWI4
NWIxNWY4NmE5ZDk5Y2VhZGRiLi45MDU0NzhkZGU0ODcyMjgzMmM4MTBjMmQ2OTNiZDI2MTkyMzg5
YWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLWV4cGVjdGVkLnR4dApAQCAt
MTMsMTcgKzEzLDMzIEBAIFNob3VsZCB0cmlnZ2VyOgogNC4xLjc6IElmIHRoZSB2ZXJzaW9uIG9m
IGRiIGlzIGxvd2VyIHRoYW4gdmVyc2lvbiwgdGhlbiBydW4gdGhlIHN0ZXBzIGZvciBydW5uaW5n
IGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIHVzaW5nIGNvbm5lY3Rpb24sIHZlcnNpb24s
IHJlcXVlc3QgYW5kIHVwZ3JhZGUgY2FsbGJhY2suCiA0LjEuOTogUmV0dXJuIGNvbm5lY3Rpb24u
CiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCA3KQotRkFJTCBTdHJpbmcocmVxdWVz
dCkgc2hvdWxkIGJlIFtvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0uIFdhcyBbb2JqZWN0IElEQlJl
cXVlc3RdLgorUEFTUyBTdHJpbmcocmVxdWVzdCkgaXMgIltvYmplY3QgSURCT3BlbkRCUmVxdWVz
dF0iCiAKK1BBU1MgSW4gdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGVyOgorVGVzdCA0Ljgu
OS4xOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIFN0cmluZyhkYikgaXMgIltvYmpl
Y3QgSURCRGF0YWJhc2VdIgorVGVzdCA0LjguOS4zOgorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlz
IDAKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0
YXRlIGlzICJkb25lIgorVGVzdCA0LjEuNDoKK1BBU1MgZGIubmFtZSBpcyBkYm5hbWUKK1BBU1Mg
ZGIudmVyc2lvbiBpcyA3CitQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIGlzIDAKK3Ry
YW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCitQQVNTIFN0cmluZyh0cmFuc2Fj
dGlvbikgaXMgIltvYmplY3QgSURCVHJhbnNhY3Rpb25dIgorb3MgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic29tZU9TIikKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCiAKIG9wZW5TdWNj
ZXNzKCk6CiBUZXN0IDQuMS43LCB0aGF0IGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB3YXMg
cnVuLgotRkFJTCBzYXdVcGdyYWRlTmVlZGVkIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCi1G
QUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1Mgc2F3VXBncmFkZU5lZWRlZCBpcyB0cnVlCitQQVNTIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUg
aXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0CiBLaW5kIG9mIHRlc3QgNC4xLjk6CiBQ
QVNTIFN0cmluZyhkYikgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgotRkFJTCBkYi52ZXJzaW9u
IHNob3VsZCBiZSA3IChvZiB0eXBlIG51bWJlcikuIFdhcyAgKG9mIHR5cGUgc3RyaW5nKS4KK1BB
U1MgZGIudmVyc2lvbiBpcyA3CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCmluZGV4IDNkMThkY2E3NzUxZGNj
OTcwNDA1ODMxMzdkODI3MzkzN2U5YjU5NDguLjI0ZTU5N2RiOGI2ZmFjYjJiMDU3OTQ2MWYyOTU2
MzczOTI1MmY2ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tlZC5qcwpAQCAtMzAsNyArMzAsNyBA
QCBmdW5jdGlvbiBmaXJzdFVwZ3JhZGVOZWVkZWRDYWxsYmFjayhldnQpCiAgICAgZXZhbEFuZExv
ZygiZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlIik7CiAgICAgc2hvdWxkQmUoImV2
ZW50Lm9sZFZlcnNpb24iLCAiMCIpOwogICAgIHNob3VsZEJlKCJldmVudC5uZXdWZXJzaW9uIiwg
IjIiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhldmVudCkiLCAiW29iamVj
dCBJREJVcGdyYWRlTmVlZGVkRXZlbnRdIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJT
dHJpbmcoZXZlbnQpIiwgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIpOwogfQogCiBn
b3RCbG9ja2VkRXZlbnQgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158981</attachid>
            <date>2012-08-16 19:33:23 -0700</date>
            <delta_ts>2012-08-16 21:21:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-92897-20120816193248.patch</filename>
            <type>text/plain</type>
            <size>85753</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg5OTQ4MWFkN2QxZTQ4
YjNiZGMzYjAxMWEwMmVlMGRkMGFhMGEyMS4uOTFiNzBlMGQ3Mzg1OGVkZjVmMGMwZWQyOWY4NjJk
OGZlNGZiODM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0wOC0xNCAgRGF2
aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBG
cm9udGVuZCBhbmQgcGx1bWJpbmcgZm9yIGludGVnZXIgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBUaGlzIHBhdGNoIGV4cG9zZXMgaW50ZWdlciB2
ZXJzaW9ucyBhbmQgdGhlIHVwZ3JhZGVuZWVkZWQgZXZlbnQgdG8KKyAgICAgICAgc2NyaXB0Lgor
CisgICAgICAgIFRoZSBldmVudHMgc3Vycm91bmRpbmcgYW4gSURCT3BlbkRCUmVxdWVzdCBmb2xs
b3cgYSBuZXcgcGF0dGVybgorICAgICAgICBjb21wYXJlZCB0byBvdGhlciBpZGIgcmVxdWVzdHMu
IEFuIG9wZW4gcmVxdWVzdCBjYW4gcmVjZWl2ZSBhIGJsb2NrZWQKKyAgICAgICAgZXZlbnQsIGFu
IHVwZ3JhZGVuZWVkZWQgZXZlbnQsIGFuZCB0aGVuIGEgc3VjY2VzcyBldmVudC4gV2hlbgorICAg
ICAgICBkaXNwYXRjaGluZyB0aGUgdXBncmFkZW5lZWRlZCBhbmQgc3VjY2VzcyBldmVudHMgdGhl
IHJlcXVlc3QgaGFzIGl0cworICAgICAgICByZWFkeVN0YXRlIHNldCB0byBET05FIGFuZCBpdHMg
cmVzdWx0IHByb3BlcnR5IHNldCB0byBhbiBJREJEYXRhYmFzZS4KKyAgICAgICAgV2UgdXN1YWxs
eSB0aGluayBvZiBJREJSZXF1ZXN0cyBmaXJpbmcgb25lIGV2ZW50IHdpdGggb25lIHJlc3VsdCwK
KyAgICAgICAgY3Vyc29ycyBiZWluZyB0aGUgYmlnIGV4Y2VwdGlvbi4gVGhlcmUgYXJlIHNvbWUg
bWlub3IgY2hhbmdlcyBhcm91bmQKKyAgICAgICAgZW5xdWV1aW5nIGFuZCBkaXNwYXRjaGluZyBl
dmVudHMgdG8gc3VwcG9ydCB0aGlzLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBzb21lIGZ1bmtp
bmVzcyBpbgorICAgICAgICBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U+KSBzbyB0aGF0CisgICAgICAgIHRoZSBJREJEYXRhYmFzZSBv
YmplY3QgZGVsaXZlcmVkIGluIHVwZ3JhZGVuZWVkZWQgaXMgcmV1c2VkIGZvciB0aGUKKyAgICAg
ICAgc3VjY2VzcyBldmVudC4KKworICAgICAgICBUZXN0cyAtIGV4cGVjdGF0aW9ucyBhcmUgdXBk
YXRlZCBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OnNldFZlcnNpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpyZWdpc3RlckZyb250
ZW5kQ2FsbGJhY2tzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5o
OgorICAgICAgICAoSURCRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoSURCRGF0
YWJhc2VDYWxsYmFja3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGw6Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpvcGVuKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoK
KyAgICAgICAgKElEQkZhY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW4p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oOgor
ICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJl
cXVlc3Q6OklEQk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6fklEQk9wZW5EQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVx
dWVzdDo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0
OjpvbkJsb2NrZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6b25VcGdy
YWRlTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6OnNob3VsZEVu
cXVldWVFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSURCT3Bl
bkRCUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzLmguCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnNob3VsZEVucXVldWVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdv
cmtzIHdpdGggV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzIHRvIHJldXNlIGl0cworICAg
ICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgdGhhdCBpdCBnb3QgZHVyaW5nCisgICAg
ICAgIElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZC4KKworICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0Ojp0cmFuc2FjdGlvbkRpZERpc3BhdGNoQ29tcGxldGVPckFib3J0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpvbkJsb2NrZWQpOgorICAgICAgICAoSURCUmVxdWVzdCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICBXZSBub3cg
dGFrZSBhIHBvaW50ZXIgdG8gdGhlIG9wZW5EQlJlcXVlc3QgaWYgdGhpcyBpcyBhIHZlcnNpb24K
KyAgICAgICAgY2hhbmdlIHRyYW5zYWN0aW9uIGFzIGEgcmVzdWx0IG9mIGFuIG9wZW4td2l0aC12
ZXJzaW9uIGNhbGwgc28gdGhhdCB3ZQorICAgICAgICBjYW4gY2xlYXIgdGhlIHRyYW5zYWN0aW9u
IHByb3BlcnR5IG9uIHRoZSBvcGVuREJSZXF1ZXN0IGFzIHNvb24gYXMgdGhlCisgICAgICAgIHVw
Z3JhZGVuZWVkZWQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBwZXIgdGhlIHNwZWMgKCIuLi4gc2V0IHJl
cXVlc3QncworICAgICAgICB0cmFuc2FjdGlvbiBwcm9wZXJ0eSB0byBudWxsLi4uICIsIGN1cnJl
bnRseSA0LjguMTIpLgorCisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246
OklEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpzZXRB
Y3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9uQ29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmRpc3BhdGNoRXZlbnQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKElEQlRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw6OmNvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50OjpJREJVcGdyYWRl
TmVlZGVkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2ZW50Ojp+
SURCVXBncmFkZU5lZWRlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlVwZ3JhZGVOZWVk
ZWRFdmVudDo6b2xkVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJVcGdyYWRlTmVlZGVk
RXZlbnQ6Om5ld1ZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCVXBncmFkZU5lZWRlZEV2
ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdy
YWRlTmVlZGVkRXZlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKElEQlVwZ3JhZGVOZWVkZWRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaC4KKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTE2ICBNaWNoZWxhbmdlbG8gRGUgU2lt
b25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1BhcnQgM10gUGFyc2Ug
dGhlIGN1c3RvbSgpIGZ1bmN0aW9uIGluIC13ZWJraXQtZmlsdGVyOiBwYXJzZSB0aGUgM2QtdHJh
bnNmb3JtcyBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdmODlhN2Mz
ZDVjNjMwZWIzNTk2NDEwYzZkYmEzMTc4NzkyNzI2YjEuLjliZDI1YjFkZWYyMDVlOTczOGRkZDVk
YTcyZWE3NzA1OTA1ZThiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjMgQEAKKzIwMTItMDgtMTQgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEluZGV4ZWREQjogRnJvbnRlbmQgYW5kIHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZl
cnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
Mjg5NworCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgKiBzcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJDYWxsYmFja3NQcm94
eTo6b25CbG9ja2VkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OklEQkNh
bGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFj
a3NQcm94eS5oOgorICAgICAgICAoSURCQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNl
QmFja2VuZFByb3h5OjpzZXRWZXJzaW9uKToKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHk6Om9uVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9J
REJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxiYWNr
c1Byb3h5KToKKyAgICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OklEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4pOgorICAgICAgICAqIHNy
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFBy
b3h5KToKKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUp
OgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6V2ViSURCQ2FsbGJhY2tzSW1wbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgIFdlIGRvbid0
IHdhbnQgdG8gY3JlYXRlIElEQkRhdGFiYXNlQmFja2VuZFByb3h5IGFnYWluIGlmIHdlJ3ZlIGFs
cmVhZHkKKyAgICAgICAgY3JlYXRlZCBpdCBkdXJpbmcgdXBncmFkZU5lZWRlZC4gIFRoaXMgbWFr
ZXMKKyAgICAgICAgSURCUmVxdWVzdDo6b25TdWNjZXNzKElEQkRhdGFiYXNlQmFja2VuZCkgcmV1
c2UgaXRzIHByZXZpb3VzCisgICAgICAgIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSBpZiBp
dCBoYXMgb25lLgorCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxv
Y2tlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFj
a3NJbXBsOjpvblVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJ
bXBsLmg6CisgICAgICAgIChXZWJJREJDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKiBzcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFuZ2UpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFz
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OldlYklEQkRh
dGFiYXNlSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4pOgorICAgICAgICAq
IHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6
CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCRmFjdG9yeUltcGw6Om9wZW4pOgorICAgICAgICAqIHNyYy9XZWJJREJGYWN0b3J5SW1w
bC5oOgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUpOgorICAgICAgICAqIHRlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAg
KiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMi0wOC0xNiAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEyNTgzOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA4NWJhOGRmYmM5YzFhZjJlODNhMjQ0NjliZGNm
OTYxODJkNWEyNTc4Li5kYWI3NGVkMGU4YjRlM2RjMGMxNjg2NjFhYWFhYTgxYzA2ZWI3NThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRl
ICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJ
REJVcGdyYWRlTmVlZGVkRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQu
aCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgpAQCAtMzAzLDYgKzMwNCwxNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpjbG9z
ZUNvbm5lY3Rpb24oKQogICAgIH0KIH0KIAordm9pZCBJREJEYXRhYmFzZTo6b25WZXJzaW9uQ2hh
bmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKQoreworICAgIGlmICht
X2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChtX2Nsb3NlUGVuZGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAg
ZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG5l
d1ZlcnNpb24sIGV2ZW50TmFtZXMoKS52ZXJzaW9uY2hhbmdlRXZlbnQpKTsKK30KKwogdm9pZCBJ
REJEYXRhYmFzZTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAg
ICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggNjRj
YmIzMjZhNTg4M2RjZjM5NDczY2FhMTA5NzI5MDVmM2ZlNjc1ZS4uYTdkNzJjZTE5OGYzZTBmZGFh
ZDBjYTNmMzBmODZjNGVmMzdhNzJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHZlcnNpb25jaGFuZ2UpOwogCiAgICAgLy8gSURC
RGF0YWJhc2VDYWxsYmFja3MKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0
X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25W
ZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbik7CiAKICAgICAvLyBB
Y3RpdmVET01PYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggYTMxMjUxYzhkNjM3ODUw
Y2Y4N2FkOGNhNGMyZTllZTFhNWEyOGViMC4uZjliMWFlZTVlZmU3NmI4NTMyNDhhZjhjYjJmNTE0
MmQ4MGM3MjZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTQ0NCwxMCArNDQ0LDYgQEAg
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1
bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MpCiB7Ci0gICAgLy8gRklYTUU6IFRo
aXMgZnVuY3Rpb24gd29uJ3QgYmUgcmVhY2hlZCB1bnRpbCBpdCdzIGV4cG9zZWQgdG8gc2NyaXB0
IGluCi0gICAgLy8gd2JrLnVnLzkyODk3LgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCiAg
ICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOwogICAgIEFT
U0VSVChjYWxsYmFja3MpOwogICAgIGZvciAoRGF0YWJhc2VDYWxsYmFja3NTZXQ6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5iZWdpbigpOyBpdCAhPSBtX2RhdGFi
YXNlQ2FsbGJhY2tzU2V0LmVuZCgpOyArK2l0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaAppbmRleCAxNmE5ZWE2
YzUwOGIwZDkyYjYxZTQ5OTdjNTQzMDEzMmE2ZDJhY2FhLi5mYWExNjZmN2Y1MTFmZjY2NjZmMzk3
M2RiYjg0MDRiN2Y5YjUyM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBjdXJyZW50VmVyc2lvbiwgaW50
NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3
VmVyc2lvbikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5jcHAKaW5kZXggMTk0MTJmY2JlNTBhYjQ0YmY1M2RjMDFlMDNkODg1M2UyOGY3YzVm
Zi4uY2ViN2FmMzFmM2UyMjQ4NjFlMDUwNzYyMTBmYWZjNWEwNThkZjIxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwCkBAIC01Miw2ICs1MiwxMiBAQCB2b2lkIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKICAgICAgICAg
bV9kYXRhYmFzZS0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwogfQogCit2b2lkIElEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50
NjRfdCBuZXdWZXJzaW9uKQoreworICAgIGlmIChtX2RhdGFiYXNlKQorICAgICAgICBtX2RhdGFi
YXNlLT5vblZlcnNpb25DaGFuZ2Uob2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7Cit9CisKIHZvaWQg
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjp1bnJlZ2lzdGVyRGF0YWJhc2UoSURCRGF0YWJhc2Uq
IGRhdGFiYXNlKQogewogICAgIEFTU0VSVF9VTlVTRUQoZGF0YWJhc2UsIGRhdGFiYXNlID09IG1f
ZGF0YWJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAppbmRleCBlOGIxZjk5YjgzOGFmN2I5Mzdk
OTRiN2FmOGY3ZjdkZmI4MmJlN2ZiLi4wMmM4ZGUwZGZlOWY2ZWZkZWQ2ODA1YjdiYWM5MjE3OGZi
ODA4OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CisgICAgdmlydHVh
bCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVy
c2lvbik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2UoSURCRGF0YWJhc2UqKTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHAKaW5kZXggY2Y1MmNjMWZlMmIxMzU1YjZjNTRlZGNlMjY1ZTBmM2U4YzNhNWU5MS4uYzgzYmEz
NjQ1ZGJmNmQzOTgzYzljY2E3ZDdiMzdhYjE1MDc3MmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNp
bmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5o
IgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiSURCUmVxdWVzdC5oIgorI2lu
Y2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKQEAgLTEw
NSw3ICsxMDUsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFi
YXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udAogICAgIHJldHVybiByZXF1ZXN0
OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
JiBlYykKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3Qg
dmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsK
ICAgICAgICAgZWMgPSBOQVRJVkVfVFlQRV9FUlI7CkBAIC0xMTQsMTEgKzExNCwxNiBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgUwogICAgIGlmICghaXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJS
ZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIDApOwotICAgIG1f
YmFja2VuZC0+b3BlbihuYW1lLCByZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBj
b250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29udGV4dCkpOworICAgIFJlZlB0cjxJ
REJPcGVuREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKGNvbnRl
eHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCB2ZXJzaW9uKTsKKyAgICBtX2JhY2tlbmQtPm9wZW4o
bmFtZSwgdmVyc2lvbiwgcmVxdWVzdCwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29udGV4
dCwgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNvbnRleHQpKTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KIAorUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIG9wZW4oY29udGV4dCwgbmFtZSwgSURCRGF0YWJh
c2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBlYyk7Cit9CisKIFBhc3NSZWZQdHI8SURCVmVyc2lv
bkNoYW5nZVJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuaAppbmRleCA0NjExY2I2YzRmZTgzOTkwYjQ3MjRhNDNiZjA5
YzlhNWE5NWQ4ODhkLi4zNjQ1YmI4MWRjN2VlOTY2OTA1ZGE2NTJjMDY0ZGE3Mzg2ZjY1M2ZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0z
MCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpA
QCAtNTgsNyArNTgsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdl
dERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCi0gICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+
IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBk
ZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBzaG9ydCBjbXAoUGFzc1JlZlB0cjxJREJLZXk+IGZp
cnN0LCBQYXNzUmVmUHRyPElEQktleT4gc2Vjb25kLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCmluZGV4IDAzODll
YjJhYWU3ZTEyOTk1NGQ5YWNmMDNhNTlmZmJjYzdmYmFhY2MuLmJmNzFhMmRkMjVkMWZmOTVlMjY0
MzVmNGU0MWYwYzQxYjk3NjcyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaWRsCkBAIC0zMCw3ICszMCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsK
ICAgICBdIElEQkZhY3RvcnkgewogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgSW1wbGVtZW50ZWRBcz1nZXREYXRhYmFzZU5hbWVzXSBJREJSZXF1ZXN0IHdlYmtpdEdl
dERhdGFiYXNlTmFtZXMoKTsKIAotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCUmVxdWVzdCBvcGVuKGluIERPTVN0cmluZyBuYW1lKQorICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCT3BlbkRCUmVxdWVzdCBvcGVuKGluIERPTVN0
cmluZyBuYW1lLCBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKQogICAg
ICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCBkZWxldGVE
YXRhYmFzZShpbiBET01TdHJpbmcgbmFtZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKaW5kZXggNjNiZDQ3ODNlNTRhZTMxZjRk
NDk1OTZmM2I2MGQ5YWY4MjU0YzlkYy4uOGRhNWMwMmU0MjNmNmY2NGU1Nzk3MzBkYjczZmEyOWVj
MmJlNDYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCkBAIC0xNTAsMTAgKzE1MCw4IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5n
U3RvcmUoUGFzc1JlZlB0cjxTCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSURCRmFjdG9yeUJh
Y2tlbmRJbXBsOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmln
aW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3Rvcnkp
Cit2b2lkIElEQkZhY3RvcnlCYWNrZW5kSW1wbDo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gcHJwU2VjdXJpdHlPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXJlY3RvcnkpCiB7Ci0gICAgLy8gRklYTUU6IE1h
a2UgdGhpcyBhIHBhcmFtZXRlciBhbmQgcGx1bWIgdGhyb3VnaCBmcm9tIGphdmFzY3JpcHQuCi0g
ICAgaW50NjRfdCB2ZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uOwog
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBwcnBTZWN1cml0eU9y
aWdpbjsKICAgICBjb25zdCBTdHJpbmcgdW5pcXVlSWRlbnRpZmllciA9IGNvbXB1dGVVbmlxdWVJ
ZGVudGlmaWVyKG5hbWUsIHNlY3VyaXR5T3JpZ2luLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApp
bmRleCBjYTFkMDUyODJhOGM1ZWRmNzY2ZDVlNTU1MDhmYWUwYTljMDQ4YzY1Li5jYWQzYjVhMjRi
Mjk5YTkyOTljMmFkMjk0ZTNiMmVhMDRjZmQ3MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkJhY2tpbmdTdG9y
ZShjb25zdCBTdHJpbmcmIGZpbGVJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRE
YXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
OwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CisgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFz
ZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA0
NGY1Yzc4NmVmMjFlYTQ3MTlmNjM2OTQyOWY3NjczOTAwNDA5MjkzLi40ZWE1ZDhhMzMwZmQwNDFh
ZjUxY2IyYTk1NDRlYTQ4YWNmNjY2ZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKQEAg
LTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfklEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkODQ5NDg4Zjg0MTNjNjRlNTI4MTky
MmNkZGNlNzU4ZjI0ZjA0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCisK
KyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgi
CisjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgorI2luY2x1ZGUgIklE
QlVwZ3JhZGVOZWVkZWRFdmVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+
IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBpbnQ2NF90IHZlcnNpb24pCit7CisgICAgUmVm
UHRyPElEQk9wZW5EQlJlcXVlc3Q+IHJlcXVlc3QoYWRvcHRSZWYobmV3IElEQk9wZW5EQlJlcXVl
c3QoY29udGV4dCwgc291cmNlLCB2ZXJzaW9uKSkpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKK30KKworSURCT3BlbkRCUmVx
dWVzdDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBpbnQ2NF90IHZlcnNpb24pCisgICAgOiBJREJSZXF1
ZXN0KGNvbnRleHQsIHNvdXJjZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpOb3Jt
YWxUYXNrLCAwKQorICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCit7CisgICAgQVNTRVJUKCFtX3Jl
c3VsdCk7Cit9CisKK0lEQk9wZW5EQlJlcXVlc3Q6On5JREJPcGVuREJSZXF1ZXN0KCkKK3sKK30K
KworY29uc3QgQXRvbWljU3RyaW5nJiBJREJPcGVuREJSZXF1ZXN0OjppbnRlcmZhY2VOYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcklEQk9wZW5EQlJl
cXVlc3Q7Cit9CisKK3ZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25CbG9ja2VkKGludDY0X3Qgb2xk
VmVyc2lvbikKK3sKKyAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQorICAgICAgICByZXR1
cm47CisgICAgZW5xdWV1ZUV2ZW50KElEQlVwZ3JhZGVOZWVkZWRFdmVudDo6Y3JlYXRlKG9sZFZl
cnNpb24sIG1fdmVyc2lvbiwgZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkpOworfQorCit2b2lk
IElEQk9wZW5EQlJlcXVlc3Q6Om9uVXBncmFkZU5lZWRlZChpbnQ2NF90IG9sZFZlcnNpb24sIFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBwcnBUcmFuc2FjdGlvbkJh
Y2tlbmQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBwcnBEYXRhYmFz
ZUJhY2tlbmQpCit7CisgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gZGF0YWJhc2VC
YWNrZW5kID0gcHJwRGF0YWJhc2VCYWNrZW5kOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uQmFja2VuZCA9IHBycFRyYW5zYWN0aW9uQmFja2Vu
ZDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGFiYXNlQmFja2VuZCk7CisKKyAgICBS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IGZyb250ZW5kID0gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRyYW5zYWN0aW9uQmFja2VuZCwgSURCVHJhbnNhY3Rp
b246OlZFUlNJT05fQ0hBTkdFLCBpZGJEYXRhYmFzZS5nZXQoKSwgdGhpcyk7CisgICAgdHJhbnNh
Y3Rpb25CYWNrZW5kLT5zZXRDYWxsYmFja3MoZnJvbnRlbmQuZ2V0KCkpOworICAgIG1fdHJhbnNh
Y3Rpb24gPSBmcm9udGVuZDsKKyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFi
YXNlLnJlbGVhc2UoKSk7CisKKyAgICBpZiAob2xkVmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFk
YXRhOjpOb0ludFZlcnNpb24pIHsKKyAgICAgIC8vIFRoaXMgZGF0YWJhc2UgaGFzbid0IGhhZCBh
biBpbnRlZ2VyIHZlcnNpb24gYmVmb3JlLgorICAgICAgb2xkVmVyc2lvbiA9IElEQkRhdGFiYXNl
TWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9uOworICAgIH0KKyAgICBlbnF1ZXVlRXZlbnQoSURC
VXBncmFkZU5lZWRlZEV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbV92ZXJzaW9uLCBldmVudE5h
bWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSk7Cit9CisKK2Jvb2wgSURCT3BlbkRCUmVxdWVzdDo6
c2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8
fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
QVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsK
KyAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjM4ZjYzMTU3NWFhYzg4NTFkODA1NjM1YjhlNTQ0MGYwZWRlMjhiMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJPcGVuREJSZXF1
ZXN0X2gKKyNkZWZpbmUgSURCT3BlbkRCUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKKworI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJREJPcGVuREJSZXF1ZXN0IDogcHVibGljIElEQlJlcXVlc3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgaW50NjRfdCB2ZXJz
aW9uKTsKKyAgICB2aXJ0dWFsIH5JREJPcGVuREJSZXF1ZXN0KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZT4pIE9WRVJSSURFOworCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihibG9ja2VkKTsKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKHVwZ3JhZGVuZWVkZWQpOworCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0IE9WRVJSSURFOworCitwcml2YXRl
OgorICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCQW55PiBzb3VyY2UsIGludDY0X3QgdmVyc2lvbik7CisKKyAgICBpbnQ2NF90IG1fdmVy
c2lvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCisjZW5kaWYgLy8gSURCT3BlbkRCUmVxdWVzdF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFlNDZhNTJlMTUwNGYxZjUzYjQ4NGI1YzNkYzY2ODJiMTE5MzFjMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2Ugewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwK
KyAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgICAgICBFdmVudFRhcmdldAorICAgIF0gSURC
T3BlbkRCUmVxdWVzdCA6IElEQlJlcXVlc3QgeworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmJsb2NrZWQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udXBncmFk
ZW5lZWRlZDsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAppbmRleCBmYTFjNjY3MzRkNGVmYjZlOWI4ZjkzMGRjNDUxMDk5NzY4
NGVlNDRiLi5hNjMzMzlmMmEyMzlhYTMzOWQzMjQ5MTQyYWEwMmNiMjA0NmM3OGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNjAs
MTYgKzYwLDE4IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSCiAKIElEQlJlcXVlc3Q6OklEQlJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+
IHNvdXJjZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlw
ZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNv
bnRleHQsIHRoaXMpCisgICAgLCBtX3Jlc3VsdCgwKQogICAgICwgbV9lcnJvckNvZGUoMCkKLSAg
ICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1fdGFza1R5cGUodGFza1R5cGUpCisgICAgLCBt
X2NvbnRleHRTdG9wcGVkKGZhbHNlKQogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikK
ICAgICAsIG1fcmVhZHlTdGF0ZShQRU5ESU5HKQogICAgICwgbV9yZXF1ZXN0QWJvcnRlZChmYWxz
ZSkKLSAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCisgICAgLCBtX3NvdXJjZShzb3VyY2Up
CisgICAgLCBtX3Rhc2tUeXBlKHRhc2tUeXBlKQogICAgICwgbV9jdXJzb3JUeXBlKElEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKQogICAgICwgbV9jdXJzb3JEaXJl
Y3Rpb24oSURCQ3Vyc29yOjpORVhUKQogICAgICwgbV9wZW5kaW5nQ3Vyc29yKDApCisgICAgLCBt
X2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQoZmFsc2UpCiB7CiAgICAgaWYgKG1fdHJhbnNhY3Rp
b24pIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOwpAQCAt
Mjg1LDEwICsyODcsMTUgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiAgICAgaWYgKCFzaG91bGRFbnF1
ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBiYWNrZW5kKTsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlOworICAgIGlm
IChtX3Jlc3VsdCkgeworICAgICAgICBpZGJEYXRhYmFzZSA9IG1fcmVzdWx0LT5pZGJEYXRhYmFz
ZSgpOworICAgICAgICBBU1NFUlQoaWRiRGF0YWJhc2UpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIGJhY2tlbmQpOworICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYkRhdGFi
YXNlLmdldCgpKTsKKyAgICB9CiAgICAgaWRiRGF0YWJhc2UtPnJlZ2lzdGVyRnJvbnRlbmRDYWxs
YmFja3MoKTsKLQotICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoaWRiRGF0YWJhc2UucmVs
ZWFzZSgpKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwogfQogCkBA
IC00NjMsMTEgKzQ3MCwxMiBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cg
Y3VzdG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFu
Z2UuCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVu
dCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQsICJldmVudCB0
eXBlIHdhcyAlcyIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
Y29uc3QgYm9vbCBzZXRUcmFuc2FjdGlvbkFjdGl2ZSA9IG1fdHJhbnNhY3Rpb24gJiYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6SURCX0FCT1JUX0VSUikpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
YmxvY2tlZEV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVk
ZWRFdmVudCwgImV2ZW50IHR5cGUgd2FzICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBjb25zdCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFu
c2FjdGlvbiAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8
IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCB8fCAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUikpOwogCiAgICAgaWYgKHNldFRyYW5z
YWN0aW9uQWN0aXZlKQogICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRBY3RpdmUodHJ1ZSk7CisK
ICAgICBib29sIGRvbnRQcmV2ZW50RGVmYXVsdCA9IElEQkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2goZXZlbnQuZ2V0KCksIHRhcmdldHMpOwogICAgIGlmIChzZXRUcmFuc2FjdGlvbkFjdGl2ZSkK
ICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0QWN0aXZlKGZhbHNlKTsKQEAgLTQ3NSw2ICs0ODMs
MTEgQEAgYm9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2
ZW50KQogICAgIGlmIChjdXJzb3JUb05vdGlmeSkKICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnBv
c3RTdWNjZXNzSGFuZGxlckNhbGxiYWNrKCk7CiAKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KSB7CisgICAgICAgIEFTU0VSVCghbV9kaWRG
aXJlVXBncmFkZU5lZWRlZEV2ZW50KTsKKyAgICAgICAgbV9kaWRGaXJlVXBncmFkZU5lZWRlZEV2
ZW50ID0gdHJ1ZTsKKyAgICB9CisKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBp
ZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBkb250UHJldmVu
dERlZmF1bHQgJiYgIW1fcmVxdWVzdEFib3J0ZWQpIHsKICAgICAgICAgICAgIG1fdHJhbnNhY3Rp
b24tPnNldEVycm9yKG1fZXJyb3IpOwpAQCAtNTAxLDYgKzUxNCwxNiBAQCB2b2lkIElEQlJlcXVl
c3Q6OnVuY2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKQogICAgIH0KIH0KIAordm9pZCBJ
REJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCkKK3sKKyAgICBBU1NF
UlQobV90cmFuc2FjdGlvbik7CisgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNo
YW5nZSgpKTsKKyAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAg
ICBtX3JlYWR5U3RhdGUgPSBQRU5ESU5HOworfQorCiB2b2lkIElEQlJlcXVlc3Q6OmVucXVldWVF
dmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRl
ID09IFBFTkRJTkcgfHwgbV9yZWFkeVN0YXRlID09IERPTkUpOwpAQCAtNTA4LDcgKzUzMSw3IEBA
IHZvaWQgSURCUmVxdWVzdDo6ZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
ICAgIGlmIChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlID09
IFBFTkRJTkcsICJXaGVuIHF1ZXVlaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3RhdGUgd2FzICVkIiwg
ZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3JlYWR5U3RhdGUpOworICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9kaWRGaXJl
VXBncmFkZU5lZWRlZEV2ZW50LCAiV2hlbiBxdWV1ZWluZyBldmVudCAlcywgbV9yZWFkeVN0YXRl
IHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9yZWFkeVN0
YXRlKTsKIAogICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmV2ZW50UXVldWUoKTsKICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDRhODQyOTE5
NDYyY2U2OTY1Y2ZmNjBhMThhYTBiNjZjOGM2OWNiMTcuLjdhMTI0OTZhYzY5NjM2ZjEwN2IzMjNj
ZWU0ODNhNDRhYTBhNzU5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFy
eUtleSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+Jiwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8gTm90IGlt
cGxlbWVudGVkLiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNoIHRoZSByZW5kZXJlciBzaWRlLgog
ICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2Vk
KGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAg
ICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMDMsNiArMTA0LDggQEAgcHVibGljOgogICAgIGJvb2wg
ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
IHsgcmV0dXJuIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpOwogCisgICAgdm9p
ZCB0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCk7CisKICAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxJREJDYWxsYmFja3M+OjpyZWY7CiAgICAgdXNpbmcgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPjo6ZGVyZWY7CiAKQEAgLTExMSwxMiArMTE0LDE2IEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U6OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBh
c3NSZWZQdHI8RXZlbnQ+KTsKLSAgICBib29sIHNob3VsZEVucXVldWVFdmVudCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdDsKIAogICAgIFJlZlB0
cjxJREJBbnk+IG1fcmVzdWx0OwogICAgIHVuc2lnbmVkIHNob3J0IG1fZXJyb3JDb2RlOwogICAg
IFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBSZWZQdHI8RE9NRXJyb3I+IG1fZXJyb3I7Cisg
ICAgYm9vbCBtX2NvbnRleHRTdG9wcGVkOworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gbV90
cmFuc2FjdGlvbjsKKyAgICBSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKKyAgICBib29sIG1fcmVx
dWVzdEFib3J0ZWQ7IC8vIE1heSBiZSBhYm9ydGVkIGJ5IHRyYW5zYWN0aW9uIHRoZW4gcmVjZWl2
ZSBhc3luYyBvbnN1Y2Nlc3M7IGlnbm9yZSB2cy4gYXNzZXJ0LgogCiBwcml2YXRlOgogICAgIC8v
IEV2ZW50VGFyZ2V0CkBAIC0xMzAsMTEgKzEzNyw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8
SURCQW55PiBtX3NvdXJjZTsKICAgICBjb25zdCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U6OlRhc2tUeXBlIG1fdGFza1R5cGU7Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBtX3Ry
YW5zYWN0aW9uOwogCi0gICAgUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7Ci0gICAgYm9vbCBtX3Jl
cXVlc3RBYm9ydGVkOyAvLyBNYXkgYmUgYWJvcnRlZCBieSB0cmFuc2FjdGlvbiB0aGVuIHJlY2Vp
dmUgYXN5bmMgb25zdWNjZXNzOyBpZ25vcmUgdnMuIGFzc2VydC4KLSAgICBib29sIG1fY29udGV4
dFN0b3BwZWQ7CiAgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBtX2VucXVldWVkRXZlbnRzOwog
CiAgICAgLy8gT25seSB1c2VkIGlmIHRoZSByZXN1bHQgdHlwZSB3aWxsIGJlIGEgY3Vyc29yLgpA
QCAtMTQ0LDYgKzE0Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQktleT4gbV9jdXJzb3JL
ZXk7CiAgICAgUmVmUHRyPElEQktleT4gbV9jdXJzb3JQcmltYXJ5S2V5OwogICAgIFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fY3Vyc29yVmFsdWU7CisgICAgYm9vbCBtX2RpZEZpcmVV
cGdyYWRlTmVlZGVkRXZlbnQ7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERh
dGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uY3BwCmluZGV4IGNiMjlkMDBmOGQxOGEwMWI5ZDcyMWUwNTA1MmZjM2ZkNGIyZDJm
YzQuLjUwMjE2ZjZiM2E5Yzk4OTc5ZmE2OTdjNTk4M2QwNDI5YjU0MTgyN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQk9iamVj
dFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCisj
aW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2Fj
dGlvbk1vbml0b3IuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAKQEAgLTQzLDcgKzQ0LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURC
VHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCVHJhbnNh
Y3Rpb246Ok1vZGUgbW9kZSwgSURCRGF0YWJhc2UqIGRiKQogewotICAgIFJlZlB0cjxJREJUcmFu
c2FjdGlvbj4gdHJhbnNhY3Rpb24oYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uKGNvbnRleHQs
IGJhY2tlbmQsIG1vZGUsIGRiKSkpOworICAgIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVl
c3QgPSAwOworICAgIHJldHVybiBjcmVhdGUoY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIsIG9w
ZW5EQlJlcXVlc3QpOworfQorCitQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJUcmFuc2FjdGlvbjo6
TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIsIElEQk9wZW5EQlJlcXVlc3QqIG9wZW5EQlJlcXVl
c3QpCit7CisgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihhZG9wdFJlZihu
ZXcgSURCVHJhbnNhY3Rpb24oY29udGV4dCwgYmFja2VuZCwgbW9kZSwgZGIsIG9wZW5EQlJlcXVl
c3QpKSk7CiAgICAgdHJhbnNhY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiB0
cmFuc2FjdGlvbi5yZWxlYXNlKCk7CiB9CkBAIC03OSwxMCArODYsMTEgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZUxlZ2FjeSgpCiB9CiAKIAotSURC
VHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJ
REJUcmFuc2FjdGlvbjo6TW9kZSBtb2RlLCBJREJEYXRhYmFzZSogZGIpCitJREJUcmFuc2FjdGlv
bjo6SURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlRyYW5zYWN0
aW9uOjpNb2RlIG1vZGUsIElEQkRhdGFiYXNlKiBkYiwgSURCT3BlbkRCUmVxdWVzdCogb3BlbkRC
UmVxdWVzdCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAgICwgbV9i
YWNrZW5kKGJhY2tlbmQpCiAgICAgLCBtX2RhdGFiYXNlKGRiKQorICAgICwgbV9vcGVuREJSZXF1
ZXN0KG9wZW5EQlJlcXVlc3QpCiAgICAgLCBtX21vZGUobW9kZSkKICAgICAsIG1fYWN0aXZlKHRy
dWUpCiAgICAgLCBtX3N0YXRlKFVudXNlZCkKQEAgLTM3Nyw3ICszODUsMTQgQEAgYm9vbCBJREJU
cmFuc2FjdGlvbjo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIAogICAg
IC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3
aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdlLgogICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5jb21wbGV0ZUV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmFib3J0RXZlbnQpOwotICAgIHJldHVybiBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNo
KGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKKyAgICBib29sIHJldHVyblZhbHVlID0gSURCRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaChldmVudC5nZXQoKSwgdGFyZ2V0cyk7CisgICAgLy8gRklYTUU6
IFRyeSB0byBjb25zdHJ1Y3QgYSB0ZXN0IHdoZXJlIHx0aGlzfCBvdXRsaXZlcyBvcGVuREJSZXF1
ZXN0IGFuZCB3ZQorICAgIC8vIGdldCBhIGNyYXNoLgorICAgIGlmIChtX29wZW5EQlJlcXVlc3Qp
IHsKKyAgICAgICAgQVNTRVJUKGlzVmVyc2lvbkNoYW5nZSgpKTsKKyAgICAgICAgbV9vcGVuREJS
ZXF1ZXN0LT50cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCk7CisgICAgfQorICAgIHJl
dHVybiByZXR1cm5WYWx1ZTsKIH0KIAogYm9vbCBJREJUcmFuc2FjdGlvbjo6Y2FuU3VzcGVuZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uaAppbmRleCAxZjdhZjdkYWQxYmU5NDhmNmI0MTk1N2Y3OWU1ZjY4NzQyYjk5YWYwLi4w
MDVlMzczNjMwYTRkMmZmMmViYWZkODFlZTM2ZWEwYzk4OWE5MjA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTQ2LDYgKzQ2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSURCQ3Vyc29yOwogY2xhc3MgSURCRGF0
YWJhc2U7CiBjbGFzcyBJREJPYmplY3RTdG9yZTsKK2NsYXNzIElEQk9wZW5EQlJlcXVlc3Q7CiAK
IGNsYXNzIElEQlRyYW5zYWN0aW9uIDogcHVibGljIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLCBw
dWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgpAQCAt
NTYsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4sIE1v
ZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVzdCopOwogICAgIHZpcnR1YWwgfklEQlRy
YW5zYWN0aW9uKCk7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtb2RlUmVhZE9u
bHkoKTsKQEAgLTExOSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrcz46OmRlcmVmOwogCiBwcml2YXRlOgotICAgIElEQlRyYW5z
YWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4sIE1vZGUsIElEQkRhdGFiYXNlKik7CisgICAgSURCVHJhbnNhY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1ZXN0Kik7CiAK
ICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBjbG9z
ZU9wZW5DdXJzb3JzKCk7CkBAIC0xNDIsNiArMTQ0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZDsKICAgICBSZWZQdHI8
SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7CisgICAgSURCT3BlbkRCUmVxdWVzdCogbV9vcGVuREJS
ZXF1ZXN0OwogICAgIGNvbnN0IE1vZGUgbV9tb2RlOwogICAgIGJvb2wgbV9hY3RpdmU7CiAgICAg
U3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NDIwMjgwZTQ2
NDBjMjE0Y2UxMWIxNTliMjBhNWZiNzhmMzc5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuY3BwCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCVXBn
cmFkZU5lZWRlZEV2ZW50LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJJREJBbnkuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzUmVmUHRyPElEQlVwZ3JhZGVOZWVkZWRFdmVudD4gSURCVXBncmFkZU5l
ZWRlZEV2ZW50OjpjcmVhdGUoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24s
IGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSURCVXBncmFkZU5lZWRlZEV2ZW50KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50VHlw
ZSkpOworfQorCitJREJVcGdyYWRlTmVlZGVkRXZlbnQ6OklEQlVwZ3JhZGVOZWVkZWRFdmVudChp
bnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUpCisgICAgOiBFdmVudChldmVudFR5cGUsIGZhbHNlIC8qY2FuQnViYmxlKi8s
IGZhbHNlIC8qY2FuY2VsYWJsZSovKQorICAgICwgbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24pCisg
ICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbikKK3sKK30KKworSURCVXBncmFkZU5lZWRlZEV2
ZW50Ojp+SURCVXBncmFkZU5lZWRlZEV2ZW50KCkKK3sKK30KKworaW50NjRfdCBJREJVcGdyYWRl
TmVlZGVkRXZlbnQ6Om9sZFZlcnNpb24oKQoreworICAgIHJldHVybiBtX29sZFZlcnNpb247Cit9
CisKK2ludDY0X3QgSURCVXBncmFkZU5lZWRlZEV2ZW50OjpuZXdWZXJzaW9uKCkKK3sKKyAgICBy
ZXR1cm4gbV9uZXdWZXJzaW9uOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIElEQlVwZ3JhZGVO
ZWVkZWRFdmVudDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFt
ZXMoKS5pbnRlcmZhY2VGb3JJREJVcGdyYWRlTmVlZGVkRXZlbnQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ODU2NjRm
MDM4OWExYjA0NTdjODllYzM0MWZiMGVlOWRmMGY0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJVcGdyYWRlTmVlZGVkRXZlbnQuaApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaAorI2Rl
ZmluZSBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJB
bnk7CisKK2NsYXNzIElEQlVwZ3JhZGVOZWVkZWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVXBncmFkZU5lZWRlZEV2ZW50PiBjcmVhdGUo
aW50NjRfdCBvbGRWZXJzaW9uID0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uLCBp
bnQ2NF90IG5ld1ZlcnNpb24gPSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24sIGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlID0gQXRvbWljU3RyaW5nKCkpOworICAgIHZpcnR1
YWwgfklEQlVwZ3JhZGVOZWVkZWRFdmVudCgpOworCisgICAgdmlydHVhbCBpbnQ2NF90IG9sZFZl
cnNpb24oKTsKKyAgICB2aXJ0dWFsIGludDY0X3QgbmV3VmVyc2lvbigpOworCisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBJREJVcGdyYWRlTmVlZGVkRXZlbnQoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5l
d1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKKworICAgIGludDY0X3Qg
bV9vbGRWZXJzaW9uOworICAgIGludDY0X3QgbV9uZXdWZXJzaW9uOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNl
bmRpZiAvLyBJREJVcGdyYWRlTmVlZGVkRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzI5OTk1NDhmNDYxMjZkZjZiMWIwNjY5ODEwMDE1YzYyYzI3ZWJlYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlVwZ3JhZGVOZWVk
ZWRFdmVudC5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBzdG9yYWdlIHsKKwor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCisg
ICAgICAgIEludGVyZmFjZU5hbWU9SURCVmVyc2lvbkNoYW5nZUV2ZW50CisgICAgXSBJREJVcGdy
YWRlTmVlZGVkRXZlbnQgOiBFdmVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxvbmcgb2xkVmVyc2lvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyBuZXdWZXJzaW9uOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggODJkYzdhMWUxYTVkNjMxZjg2ZjY1YWIwMTlmMWE2YTExNjU1NWU4ZC4uOWY1YmFhMDdjOWQ5
NjA4ZjJiNDQwYzkwNDU4ZmQyZjEzMGQwZTFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODIzLDgg
KzgyMywxMCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmlkbCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCVXBncmFkZU5lZWRlZEV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlLmlkbCcsCkBAIC0x
NTE2LDYgKzE1MTgsOCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oJywKKyAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCcsCkBAIC0xNTI5LDYgKzE1
MzMsOCBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QlVwZ3JhZGVOZWVkZWRFdmVudC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQlVwZ3JhZGVOZWVkZWRFdmVudC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRk
Yi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CmluZGV4IDZkMGExMDU3MzhkYTllODBhNWE4MzM5NzA3YjQzMWFkOTAyM2RhMzIuLmEyZmFlYzEy
ODM0YmJhODQ4OGM3NGZmZjNkYWQ4NTE1ODBmNjA5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aApAQCAtMTE1LDYgKzExNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh0ZXh0
SW5wdXQpIFwKICAgICBtYWNybyh1bmxvYWQpIFwKICAgICBtYWNybyh1cGRhdGVyZWFkeSkgXAor
ICAgIG1hY3JvKHVwZ3JhZGVuZWVkZWQpIFwKICAgICBtYWNybyh2ZXJzaW9uY2hhbmdlKSBcCiAg
ICAgbWFjcm8od2Via2l0dmlzaWJpbGl0eWNoYW5nZSkgXAogICAgIG1hY3JvKHdyaXRlKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IDVkYTU3ZmZjNmNmNDMyNjdhNWVjM2JlMzM3NTk1
YjZjZmU1NGY4MjguLjIyYWFhN2IwNzBjNGJiNDJiMTQyZTExYmRjOWIzNzliNTdjNDVmNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC0zOSw2ICszOSw3IEBAIFN0b3JhZ2VFdmVudAog
U1ZHRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQsIGNvbmRpdGlvbmFsPVNWRwogU1ZHWm9vbUV2
ZW50IGNvbmRpdGlvbmFsPVNWRwogU1ZHWm9vbUV2ZW50cyBpbnRlcmZhY2VOYW1lPVNWR1pvb21F
dmVudCwgY29uZGl0aW9uYWw9U1ZHCitJREJVcGdyYWRlTmVlZGVkRXZlbnQgY29uZGl0aW9uYWw9
SU5ERVhFRF9EQVRBQkFTRQogSURCVmVyc2lvbkNoYW5nZUV2ZW50IGNvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UKIFRvdWNoRXZlbnQgY29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLCBydW50aW1l
Q29uZGl0aW9uYWw9dG91Y2hFbmFibGVkCiBEZXZpY2VNb3Rpb25FdmVudCBjb25kaXRpb25hbD1E
RVZJQ0VfT1JJRU5UQVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5Lmlu
CmluZGV4IDZkOTcyYzM5NmQ3NjMzMmUxYTBiMjY1NzMxYWUzZGI4YTQ5ZjIxZTkuLjc5MWJkNGVk
YTVjYTM3YWY0NTc4MzYzNDk3Nzk1MTMwNzRjMmQyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtOSw2ICs5LDcgQEAgRXZlbnRTb3VyY2UKIEZpbGVSZWFk
ZXIgY29uZGl0aW9uYWw9QkxPQgogRmlsZVdyaXRlciBjb25kaXRpb25hbD1GSUxFX1NZU1RFTQog
SURCRGF0YWJhc2UgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQorSURCT3BlbkRCUmVxdWVz
dCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJSZXF1ZXN0IGNvbmRpdGlvbmFsPUlO
REVYRURfREFUQUJBU0UKIElEQlRyYW5zYWN0aW9uIGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJB
U0UKIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCmluZGV4IDMyYjI5YjU2M2Q2YTU3MjFjMTM1MmJmZDVhNjQzMzhmMWFiNzUyMTUuLmUx
NWIzMGQ5ZTQzZjE1NTNkNDE1YTgyNGU0YTE1NDU4ZmM0NjQyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtMTI5
LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JJREJEYXRhYmFzZUNh
bGxiYWNrcygpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBT
dHJpbmcmIHZlcnNpb24pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIHsgfQogcHJpdmF0ZToKICAgICBJ
bnNwZWN0b3JJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKQEAgLTIzNyw3ICsyMzgsNyBA
QCBwcml2YXRlOgogdm9pZCBFeGVjdXRhYmxlV2l0aERhdGFiYXNlOjpzdGFydChJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZSogaWRiRmFjdG9yeSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSkKIHsKICAgICBSZWZQdHI8T3BlbkRhdGFiYXNlQ2FsbGJhY2s+IGNhbGxiYWNrID0g
T3BlbkRhdGFiYXNlQ2FsbGJhY2s6OmNyZWF0ZSh0aGlzKTsKLSAgICBpZGJGYWN0b3J5LT5vcGVu
KGRhdGFiYXNlTmFtZSwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2luLCBjb250ZXh0LCBT
dHJpbmcoKSk7CisgICAgaWRiRmFjdG9yeS0+b3BlbihkYXRhYmFzZU5hbWUsIElEQkRhdGFiYXNl
TWV0YWRhdGE6Ok5vSW50VmVyc2lvbiwgY2FsbGJhY2suZ2V0KCksIHNlY3VyaXR5T3JpZ2luLCBj
b250ZXh0LCBTdHJpbmcoKSk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb25Gb3JEYXRhYmFzZShJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2UqIGlkYkRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApp
bmRleCA3ZDJjOWNmOTljMTIzZjA5YTQ0MTQzM2Y5MDA4MDAyNGNkMDk3OGIxLi4xOTNiZjJiNWY2
YzY2NmM3YmQ1MDYyYWQ0NDc0NDE1YmZiMzA0Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC0xMzAsNiArMTMwLDE2IEBAIHZv
aWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uQmxvY2tlZCgpCiAgICAgbV9jYWxsYmFja3MtPm9uQmxv
Y2tlZCgpOwogfQogCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJsb2NrZWQoaW50NjRfdCBl
eGlzdGluZ1ZlcnNpb24pCit7CisgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZChleGlzdGluZ1Zl
cnNpb24pOworfQorCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblVwZ3JhZGVOZWVkZWQoaW50
NjRfdCBvbGRWZXJzaW9uLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4gdHJhbnNhY3Rpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBk
YXRhYmFzZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25VcGdyYWRlTmVlZGVkKG9sZFZlcnNpb24s
IG5ldyBXZWJJREJUcmFuc2FjdGlvbkltcGwodHJhbnNhY3Rpb24pLCBuZXcgV2ViSURCRGF0YWJh
c2VJbXBsKGRhdGFiYXNlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCA0YzcwYjY2NmVhYzgxM2Y5Yjk4ZWNmODcyZTc4
Y2QyNDg2ZDY3ZTFhLi44MjU3NThhYWRlOTNmNDFmMjYyOTMwMzY4YmQ5NjY2MGZlNTJhNTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAg
LTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFy
eUtleSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2Vi
Q29yZTo6SURCS2V5PiA+JiBrZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklEQktl
eT4gPiYgcHJpbWFyeUtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMpOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGludDY0X3QgZXhpc3RpbmdWZXJzaW9uKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGludDY0X3Qgb2xkVmVyc2lvbiwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4pOwogCiBwcml2YXRlOgogICAg
IElEQkNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCQ2FsbGJhY2tzPik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuY3BwCmluZGV4IDgxNmZhZjZjNGRlNzBhZTY5MjY5MzBkMGRlNTBlMGVlMmQxMTc4NWIuLjAx
OWU1OWJhMDYxZjBmYjg0ZTNhOTNhYjg5NWZiYTliZWQ1ZDFjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3Bw
CkBAIC00OCw2ICs0OCwxMSBAQCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Ojp+SURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eSgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eTo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9u
KQoreworICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2Uob2xkVmVyc2lvbiwgbmV3VmVy
c2lvbik7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hh
bmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbikKIHsKICAgICBtX2NhbGxiYWNrcy0+
b25WZXJzaW9uQ2hhbmdlKHJlcXVlc3RlZFZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCmluZGV4IGFmZmRj
ZTc3ZDVkOTU4ZGMwMGUwZjZmODBhY2ZmYjgwMTI5NThiM2IuLjk5OTVhYmQyYjZhZDlkMDI0ZTE1
MmYxMGQwZWU2MDMxYzg1YzNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9u
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwg
aW50NjRfdCBuZXdWZXJzaW9uKTsKIAogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUNhbGxiYWNr
c1Byb3h5KFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2VDYWxsYmFja3M+KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKaW5k
ZXggYzFiZWMxMDc3ZDZiY2Y0ODdlOTk0MWUwZWQyMWM2Y2JjNjE4NjAxOS4uYmFiY2JhZTE4NDA5
YzVkZDI1OTJjMGRmZDkyMzMyNmZiZjYwZTk0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAKQEAgLTIwMyw3ICsyMDMs
NyBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFiYXNlTmFtZXMoUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogfQogCiAKLXZvaWQgSURCRmFjdG9yeUJhY2tl
bmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
Cit2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBp
bnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7CiAgICAgUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CiAgICAgV2ViU2VjdXJpdHlPcmln
aW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIElEQkZh
Y3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcAogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZUltcGwqIHdlYkZy
YW1lID0gZ2V0V2ViRnJhbWUoY29udGV4dCk7Ci0gICAgbV93ZWJJREJGYWN0b3J5LT5vcGVuKG5h
bWUsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUs
IGRhdGFEaXIpOworICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1lLCB2ZXJzaW9uLCBuZXcg
V2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGly
KTsKIH0KIAogdm9pZCBJREJGYWN0b3J5QmFja2VuZFByb3h5OjpkZWxldGVEYXRhYmFzZShjb25z
dCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKaW5kZXggMjJhNmY1
MmE4Njk4MTZjODA1NjY4ZDY4NGQwYTdiZmZmYzI2YWU2OS4uYzBkZTkxMGE5MmNkZWE5MWEzZDNh
MWM1MzBhMjgwN2M1YWJmYWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94eSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
ZGF0YURpcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDA4M2RiY2NiZTI2NzVmMjA5OWI1MzU1N2Y0
MDE2OGUzZTA4M2Q3NjcuLjJjYjkwZWE0NmU2M2FhYTY1MjgzOTY1YTFjNGZlZTRjMDk1MjBhODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJJREJDYWxs
YmFja3NJbXBsOjpXZWJJREJDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiAgICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCisgICAgLCBtX2RpZENyZWF0
ZURhdGFiYXNlUHJveHkoZmFsc2UpCiB7CiB9CiAKQEAgLTcyLDYgKzczLDEwIEBAIHZvaWQgV2Vi
SURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYklEQkN1cnNvciogY3Vyc29yLCBjb25zdCBX
ZWJJREJLZXkmIGtleSwKIAogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2Vi
SURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogeworICAgIGlmIChtX2RpZENyZWF0ZURhdGFi
YXNlUHJveHkpIHsKKyAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHN0YXRpY19jYXN0PFdlYklEQkRhdGFiYXNlKj4o
MCkpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKHdlYktpdEluc3RhbmNl
KSkpOwogfQogCkBAIC0xMDUsNiArMTEwLDE3IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6
b25CbG9ja2VkKCkKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CiB9CiAKK3ZvaWQgV2Vi
SURCQ2FsbGJhY2tzSW1wbDo6b25CbG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKQoreworICAg
IG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQob2xkVmVyc2lvbik7Cit9CisKK3ZvaWQgV2ViSURCQ2Fs
bGJhY2tzSW1wbDo6b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIFdlYklEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAg
ICBtX2RpZENyZWF0ZURhdGFiYXNlUHJveHkgPSB0cnVlOworICAgIG1fY2FsbGJhY2tzLT5vblVw
Z3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0
ZShhZG9wdFB0cih0cmFuc2FjdGlvbikpLCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGRhdGFiYXNlKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDMwZDc0MzZjNmE1OWY0ODk2Mjkw
NTI2MDJhZjg5Mzg0ODMyYjM5MjguLjMzY2QyMDI5ZmFjZmNkNTI5NWRkNjY0NGFkMDFjYzdkYjc2
OTkwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmgKQEAgLTUxLDkgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IFdlYklEQktleSYs
IGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0
IFdlYklEQktleSYsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlJik7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pOworICAgIHZpcnR1YWwg
dm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0
aW9uKiwgV2ViSURCRGF0YWJhc2UqKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6
SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKKyAgICBib29sIG1fZGlkQ3JlYXRlRGF0YWJhc2VQ
cm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5k
ZXggZmYwZTg5ODY0YjIxYTY0Njg5YjAzMTI2Y2FhZjNmZTU2NTlmYWYzMS4uMTQ3NTdiYWM2NzBk
OWRlNGZhZmE0OWVhYTY4OWVkOWM0ZGFiYmU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC00
NCw2ICs0NCwxMSBAQCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6On5XZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwoKQogewogfQogCit2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bDo6b25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBsb25nIGxvbmcgbmV3VmVy
c2lvbikKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKG9sZFZlcnNpb24sIG5l
d1ZlcnNpb24pOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJz
aW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbikKIHsKICAgICBtX2NhbGxiYWNrcy0+
b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAppbmRleCAyMWMzZGM3YzVh
YzRhZDBiZWE4ZGYyOTE2ZWJiM2Y4OGM2N2ZmMDVmLi4xODU3Y2E2NThkMzBmYzI2MDA1MjFhNmRh
ZDE5MzEzMTM4NTdjZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJs
aWM6CiAgICAgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UobG9uZyBsb25n
IG9sZFZlcnNpb24sIGxvbmcgbG9uZyBuZXdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25W
ZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCBiYzZkMDlmYTFmYjk3MGMyOTdlMTc3YTIxNTRlZTcxMDE4ZmFmZmY3Li45MzQzMjgxY2Y0ZDBh
ZjE3Y2I2YzMyMjUwODFkZjQwNzFkYWU4NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYklEQkRhdGFiYXNlSW1wbDo6V2ViSURCRGF0YWJhc2VJbXBsKFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBkYXRhYmFzZUJhY2tlbmQpCiAg
ICAgOiBtX2RhdGFiYXNlQmFja2VuZChkYXRhYmFzZUJhY2tlbmQpCisgICAgLCBtX2Nsb3NlUGVu
ZGluZyhmYWxzZSkKIHsKIH0KIApAQCAtOTQsOCArOTUsMTAgQEAgdm9pZCBXZWJJREJEYXRhYmFz
ZUltcGw6OmNsb3NlKCkKIHsKICAgICAvLyBVc2UgdGhlIGNhbGxiYWNrcyB0aGF0IDo6b3BlbiBn
YXZlIHVzIHNvIHRoYXQgdGhlIGJhY2tlbmQgaW4KICAgICAvLyBtdWx0aS1wcm9jZXNzIGNocm9t
aXVtIGtub3dzIHdoaWNoIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZy4KLSAgICBpZiAo
IW1fZGF0YWJhc2VDYWxsYmFja3MpCisgICAgaWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzKSB7Cisg
ICAgICAgIG1fY2xvc2VQZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOworICAgIH0KICAg
ICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2UobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgbV9k
YXRhYmFzZUNhbGxiYWNrcyA9IDA7CiB9CkBAIC0xMDUsNiArMTA4LDggQEAgdm9pZCBXZWJJREJE
YXRhYmFzZUltcGw6Om9wZW4oV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGNhbGxiYWNrcykKICAg
ICBBU1NFUlQoIW1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3Mg
PSBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSk7
CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MobV9kYXRh
YmFzZUNhbGxiYWNrcyk7CisgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQorICAgICAgICBjbG9zZSgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNGY4MjUxODIwYTQ5YmJkZmRlNTJmYWI5
MWVmZmE1YWVjMDhiYTQ2ZC4uMTQwOWNiNjVmMDY1ZmIzNWQ0MDA3MDNmNmM3YmU3MjI0ZGQwMDAz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXVEY6OlJlZlB0cjxX
ZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+IG1fZGF0YWJhc2VCYWNrZW5kOwog
ICAgIFdURjo6UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+IG1fZGF0YWJhc2VDYWxs
YmFja3M7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZsYWcgd2hlbiB3ZSBjb25zb2xpZGF0
ZSB0d28tcGhhc2Ugb3Blbi4KKyAgICAvLyBodHRwOi8vd2tiLnVnLzkwNDExCisgICAgYm9vbCBt
X2Nsb3NlUGVuZGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCmluZGV4IGQxNGFjNzFl
MThjODU5MzE1MmVmZGZkNWM4MzllMDE3MjBlM2ZmZGMuLmFkNzE0NzZiN2ViYjQ2ODZlYTgyNWI5
NjIxOTE2ZTYzYjI5MGFjNzcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJGYWN0b3J5SW1wbC5jcHAKQEAgLTYzLDE3ICs2Myw5IEBAIHZvaWQgV2ViSURCRmFjdG9y
eUltcGw6OmdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0
IFdlYlNlCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+Z2V0RGF0YWJhc2VOYW1lcyhJREJDYWxs
YmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBvcmlnaW4sIDAsIGRhdGFE
aXIpOwogfQogCi0KLXZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpCi17Ci0gICAg
bV9pZGJGYWN0b3J5QmFja2VuZC0+b3BlbihuYW1lLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGNhbGxiYWNrcykpLmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwotfQotCiB2
b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBs
b25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKIHsK
LSAgICAvLyBGSVhNRTogUGFzcyB2ZXJzaW9uIGFsb25nIHdoZW4gV2ViQ29yZTo6SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2UKLSAgICAvLyBoYXMgYW4gb3BlbiBtZXRob2QgdGhhdCBhY2NlcHRz
IGl0LgotICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgSURCQ2FsbGJhY2tzUHJv
eHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKS5nZXQoKSwgb3JpZ2luLCAwLCBkYXRhRGly
KTsKKyAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIElEQkNhbGxi
YWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkuZ2V0KCksIG9yaWdpbiwgMCwg
ZGF0YURpcik7CiB9CiAKIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmRlbGV0ZURhdGFiYXNlKGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdl
YlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRh
RGlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9y
eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgK
aW5kZXggZmE0MzhkNzY0OGUzNDY0YzVhMWNiZDVjY2Y1N2NmZjBlNTZmMzI4NS4uODMzZWViNTkx
MjU5Yjg1M2MzMjFmZDExOGYwOTRhNWI4YTdjODg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw3ICs0NSw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdl
dERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4m
LCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7Ci0gICAgdmlydHVhbCB2b2lk
IG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJT
ZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAg
ICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJz
aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1l
KiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0
YWJhc2UoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJT
ZWN1cml0eU9yaWdpbiYsIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVw
dFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVw
dFRlc3QuY3BwCmluZGV4IDNmYzEwNTMwN2JmNTdlMDU0MTNlOWQxNzJjMTU1OWM1NDA4YmM3Y2Eu
LjFkMzk1MDk2YWFkYjNhNWIzZGU5YjcwZGFiNjBmMzE4OWNmYmE5ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAK
QEAgLTEwMiw3ICsxMDIsOCBAQCBURVNUKElEQkFib3J0VGVzdCwgVGhlVGVzdCkKICAgICBjb25z
dCBTdHJpbmcmIG5hbWUgPSAiZGIgbmFtZSI7CiAgICAgTW9ja0lEQkNhbGxiYWNrcyBjYWxsYmFj
a3M7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKCJodHRwIiwgImxvY2FsaG9zdCIsIDgxKTsKLSAgICBmYWN0b3J5LT5vcGVuKG5hbWUs
ICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKKyAg
ICBjb25zdCBpbnQ2NF90IER1bW15VmVyc2lvbiA9IDI7CisgICAgZmFjdG9yeS0+b3BlbihuYW1l
LCBEdW1teVZlcnNpb24sICZjYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygp
IC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDIyNzc4
ODc1ZmE5MzQwMjA3ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIuLjg2MDVjMGYxYWM2Mjg3ZmZkYzgy
ODE4ZTVhM2UwNTYzNGE4YjJjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMTAwLDYgKzEwMCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGYWtlSURCRGF0YWJhc2VDYWxsYmFja3M+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3Mo
KSk7IH0KICAgICB2aXJ0dWFsIH5GYWtlSURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgT1ZFUlJJ
REUgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNp
b24sIGludDY0X3QgbmV3VmVyc2lvbikgT1ZFUlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJ
REJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMWUzNzBlZDk1MTc4ZTI4NGMw
ZmFmNjY5MjBjYWI3ODgzMTg3OTk5Li45ODVjNWIzNzBjZTU0NTlmMzcxN2ExMzM0MGIyNDRjN2U0
N2M2YWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMTQgIERhdmlkIEdyb2dhbiAg
PGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogRnJvbnRlbmQgYW5k
IHBsdW1iaW5nIGZvciBpbnRlZ2VyIHZlcnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5NworCisgICAgICAgIFRoaXMgcGF0Y2ggZXhwb3Nl
cyBpbnRlZ2VyIHZlcnNpb25zIGFuZCB0aGUgdXBncmFkZW5lZWRlZCBldmVudCB0bworICAgICAg
ICBzY3JpcHQgc28gdXBncmFkZW5lZWRlZCBldmVudHMgYXJlIG5vdyBmaXJlZCBtb3N0bHkgcGVy
IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgVGhpcyBpcyB0aGUgYnVsayBvZiBjaGFuZ2VzIHRvIHRo
ZSBleHBlY3RlZCBmaWxlcywgZnVydGhlciBpbnR2ZXJzaW9uCisgICAgICAgIHBhdGNoZXMgd2ls
bCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGEgdGVzdCBvciB0d28sIG5vdGhpbmcgd2hvbGVzYWxl
LgorCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hbmQtc2V0
dmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWNsb3NlLWJldHdlZW4tZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tdXBn
cmFkZW5lZWRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24taW52YWxpZC1zZXR2ZXJzaW9uLWhhcy1uby1zaWRlLWVmZmVj
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24t
bG9uZy1xdWV1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQ6CisKIDIwMTItMDgtMTYgIE1p
Y2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbUGFydCAzXSBQYXJzZSB0aGUgY3VzdG9tKCkgZnVuY3Rpb24gaW4gLXdlYmtpdC1maWx0ZXI6
IHBhcnNlIHRoZSAzZC10cmFuc2Zvcm1zIHBhcmFtZXRlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRl
bmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA5
OTA4M2NkNzdhOWQ1MDZiMWY5NjVjOGQzNDA1YTdkODkyYWE2YTYzLi41YTA1OGNmMTI2NTlkY2Fh
NGJmMTQ1ODhlZTg0NTY5YTZjN2Y1YzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0xMSw3ICsxMSwx
MyBAQCBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9
IHVwZ3JhZGVOZWVkZWQKIEZJWE1FOiBUaGlzIHNob3VsZCBnZXQgYW4gZXJyb3IgZXZlbnQgb2Yg
dHlwZSBBYm9ydEVycm9yCiByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
awotRkFJTCBTdWNjZXNzIGZ1bmN0aW9uIGNhbGxlZCB1bmV4cGVjdGVkbHkuCisKK3VwZ3JhZGVO
ZWVkZWQoKToKK1BBU1MgZGIudmVyc2lvbiBpcyAyCit0cmFuc2FjdGlvbi5hYm9ydCgpCisKK29u
QWJvcnQoKToKK0ZBSUwgZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAy
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFuZC1zZXR2
ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CmluZGV4IGYyMjJjYTE1ZDA5Yzc0ZDNh
MmY0NDc5OGQyMGJkYzE4ZTUzMjUxNmYuLjA0ZjI4MWFhZDg0N2U4ODY4NjJmNzM5YWU0Y2ZhMjk0
NzI3MjYyZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYW5kLXNldHZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0z
MywxNyArMzMsNTcgQEAgUEFTUyBkYi52ZXJzaW9uIGlzICJzb21lIHZlcnNpb24iCiBkYi5jbG9z
ZSgpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVO
ZWVkZWQoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJb
b2JqZWN0IElEQkRhdGFiYXNlXSIKK1BBU1MgU3RyaW5nKHJlcXVlc3QudHJhbnNhY3Rpb24pIGlz
ICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIKK0ZBSUwgZXZlbnQub2xkVmVyc2lvbiBzaG91bGQg
YmUgc29tZSB2ZXJzaW9uIChvZiB0eXBlIHN0cmluZykuIFdhcyAwIChvZiB0eXBlIG51bWJlciku
CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorcmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBs
ZXRlID0gdHJhbnNhY3Rpb25Db21wbGV0ZWQKKwordHJhbnNhY3Rpb25Db21wbGV0ZWQoKToKK2Rp
ZFRyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCisKIGZpcnN0T3BlbldpdGhWZXJzaW9uKCk6Ci1G
QUlMIGRpZFRyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BB
U1MgZGlkVHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIFBBU1MgU3RyaW5nKGRiKSBpcyAiW29iamVjdCBJREJEYXRhYmFzZV0iCiBQQVNTIHJlcXVl
c3QudHJhbnNhY3Rpb24gaXMgbnVsbAotRkFJTCBkYi52ZXJzaW9uIHNob3VsZCBiZSAyIChvZiB0
eXBlIG51bWJlcikuIFdhcyBzb21lIHZlcnNpb24gKG9mIHR5cGUgc3RyaW5nKS4KLUZBSUwgU3Ry
aW5nKHJlcXVlc3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29i
amVjdCBJREJSZXF1ZXN0XS4KK1BBU1MgZGIudmVyc2lvbiBpcyAyCitQQVNTIFN0cmluZyhyZXF1
ZXN0KSBpcyAiW29iamVjdCBJREJPcGVuREJSZXF1ZXN0XSIKIHJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCJzdHJpbmcgdmVyc2lvbiAyIikKIFBBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0
IElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0XSIKIHJlcXVlc3Qub25lcnJvciA9IHNldFZlcnNpb25O
b3RBbGxvd2VkCi1GQUlMIFN1Y2Nlc3MgZnVuY3Rpb24gY2FsbGVkIHVuZXhwZWN0ZWRseS4KKwor
c2V0VmVyc2lvbk5vdEFsbG93ZWQoKToKK1BBU1MgZXZlbnQudHlwZSBpcyAiZXJyb3IiCityZXF1
ZXN0LndlYmtpdEVycm9yTWVzc2FnZSA9IFlvdSBjYW4ndCB1c2UgdGhlIHNldFZlcnNpb24gZnVu
Y3Rpb24gaWYgeW91J3ZlIGFscmVhZHkgc2V0IHRoZSB2ZXJzaW9uIHRocm91Z2ggYW4gb3BlbiBj
YWxsLiAgVGhlIGN1cnJlbnQgaW50ZWdlciB2ZXJzaW9uIGlzIDIKK2RiLmNsb3NlKCkKK3JlcXVl
c3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDEpCityZXF1ZXN0Lm9uZXJyb3IgPSBlcnJvcldo
ZW5UcnlpbmdMb3dWZXJzaW9uCisKK2Vycm9yV2hlblRyeWluZ0xvd1ZlcnNpb24oKToKK3JlcXVl
c3Qud2Via2l0RXJyb3JNZXNzYWdlID0gVGhlIHJlcXVlc3RlZCB2ZXJzaW9uICgxKSBpcyBsZXNz
IHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24gKDIpLgorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgNCkKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gc2Vjb25kVXBncmFkZU5lZWRl
ZAorcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0aGlyZE9wZW5TdWNjZXNzCisKK3NlY29uZFVwZ3JhZGVO
ZWVkZWQoKToKK2dvdFNlY29uZFVwZ3JhZGVOZWVkZWQgPSB0cnVlCitQQVNTIGV2ZW50Lm9sZFZl
cnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDQKKwordGhpcmRPcGVuU3VjY2Vz
cygpOgorUEFTUyBnb3RTZWNvbmRVcGdyYWRlTmVlZGVkIGlzIHRydWUKK2RiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzIDQKK2RiLmNsb3NlKCkKK3JlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZvdXJ0aE9wZW5TdWNj
ZXNzCisKK2ZvdXJ0aE9wZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BB
U1MgZGIudmVyc2lvbiBpcyA0CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmluZGV4IGJhYzNjY2YyYzM0YmZm
MDk0OTQzZTYxM2ZhMGRiNjM4N2RmYmEzOTQuLmJjNzIzMzYxYzA4OGFiMTk1ZTA3M2Q5YjMwOTgz
Nzg1OWRlYzM4ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYmxvY2tlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMTEsMTUgKzExLDQy
IEBAIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiBkZWxldGVTdWNjZXNzKCk6CiBy
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogCitmaXJzdFVwZ3JhZGVOZWVkZWRD
YWxsYmFjaygpOgorZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlCitQQVNTIGV2ZW50
Lm9sZFZlcnNpb24gaXMgMAorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDIKK1BBU1MgU3RyaW5n
KGV2ZW50KSBpcyAiW29iamVjdCBJREJWZXJzaW9uQ2hhbmdlRXZlbnRdIgorCiBmaXJzdFN1Y2Nl
c3NFdmVudEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxk
IGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMg
dHJ1ZQogY29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZl
cnNpb25jaGFuZ2UgPSB2ZXJzaW9uQ2hhbmdlSGFuZGxlcgogUEFTUyBTdHJpbmcoY29ubmVjdGlv
bjEpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKIHJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUsIDMpCiAKK3ZlcnNpb25DaGFuZ2VIYW5kbGVyKCk6CitzYXdWZXJzaW9uQ2hhbmdlRXZl
bnQgPSB0cnVlCitQQVNTIGV2ZW50LnR5cGUgaXMgInZlcnNpb25jaGFuZ2UiCitQQVNTIFN0cmlu
ZyhldmVudCkgaXMgIltvYmplY3QgSURCVmVyc2lvbkNoYW5nZUV2ZW50XSIKK1BBU1MgZXZlbnQu
dGFyZ2V0IGlzIGNvbm5lY3Rpb24xCitQQVNTIGV2ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBl
dmVudC5uZXdWZXJzaW9uIGlzIDMKKworYmxvY2tlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBzYXdW
ZXJzaW9uQ2hhbmdlRXZlbnQgaXMgdHJ1ZQorZ290QmxvY2tlZEV2ZW50ID0gdHJ1ZQorUEFTUyBT
dHJpbmcoZXZlbnQpIGlzICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iCitQQVNTIGV2
ZW50Lm9sZFZlcnNpb24gaXMgMgorUEFTUyBldmVudC5uZXdWZXJzaW9uIGlzIDMKK1BBU1MgZXZl
bnQudHlwZSBpcyAiYmxvY2tlZCIKK2Nvbm5lY3Rpb24xLmNsb3NlKCkKKworc2Vjb25kVXBncmFk
ZU5lZWRlZEV2ZW50SGFuZGxlcigpOgorUEFTUyBnb3RCbG9ja2VkRXZlbnQgaXMgdHJ1ZQorZ290
U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorCiBzZWNvbmRTdWNjZXNzQ2FsbGJhY2so
KToKLUZBSUwgZ290U2Vjb25kVXBncmFkZU5lZWRlZEV2ZW50IHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitQQVNTIGdvdFNlY29uZFVwZ3JhZGVOZWVkZWRFdmVudCBpcyB0cnVlCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtYmV0d2Vlbi1ldmVu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYzA2MDllZTRjMDVhMWU3
ZGExYThlOTFhOWU5YTg4OTMwODgwZGZmMC4uNTUxZjhkODZlYjZlNzc2ZGU2MzE4OGE5YWEwMzEz
NTAwOGVjYjZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1iZXR3ZWVuLWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTEwLDExICsxMCwyNyBAQCBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKIAogCit1cGdyYWRlTmVl
ZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXZlbnQubmV3VmVyc2lvbiBp
cyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0c3RvcmUnKQordHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwordHJhbnNhY3Rpb24ub25jb21wbGV0ZToKK3Nhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitzZXRUaW1lb3V0KGNsb3NlREIsIDApCisKIG9wZW5T
dWNjZXNzKCk6CiBQQVNTIGRpZENhbGxDbG9zZURCIGlzIGZhbHNlCi1GQUlMIHNhd1RyYW5zYWN0
aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rp
b25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVy
c2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZyku
CitQQVNTIGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBp
cyAxCitkYi50cmFuc2FjdGlvbihkYi5vYmplY3RTdG9yZU5hbWVzKQorCitjbG9zZURCKCk6Citk
aWRDYWxsQ2xvc2VEQiA9IHRydWUKK2RiLmNsb3NlKCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1vbmNvbXBsZXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xvc2UtaW4tb25jb21w
bGV0ZS1leHBlY3RlZC50eHQKaW5kZXggZTY1ZWRiMjRiZGQ2ZTIxOTczMjUyNGMxMTk1OGJlMjQw
YzkzZjhjYS4uYzNmODA5NmU5ZjRkY2IzNmU0NjUxMjNlODM4NDViZjQ5ZmUyYWQxMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi1v
bmNvbXBsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBAIC05LDE0ICs5
LDI0IEBAIGRibmFtZSA9ICJpbnR2ZXJzaW9uLWNsb3NlLWluLW9uY29tcGxldGUuaHRtbCIKIGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCA3KQogCit1cGdyYWRlTmVlZGVkKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
K1BBU1MgZXZlbnQubmV3VmVyc2lvbiBpcyA3CitkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQor
dHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KKwordHJhbnNhY3Rpb24ub25j
b21wbGV0ZToKK3Nhd1RyYW5zYWN0aW9uQ29tcGxldGUgPSB0cnVlCitkYi5jbG9zZSgpCisKIG9w
ZW5TdWNjZXNzKCk6Ci1GQUlMIHNhd1RyYW5zYWN0aW9uQ29tcGxldGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1Mgc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSBpcyB0cnVlCiBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKLUZBSUwgZGIudmVyc2lvbiBzaG91bGQgYmUgNyAob2YgdHlwZSBu
dW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQQVNTIGRiLnZlcnNpb24gaXMgNwogRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ29zJywg
J3JlYWR3cml0ZScpCiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgotRkFJTCBjb2RlIHNob3Vs
ZCBiZSAxMS4gV2FzIDguCi1GQUlMIGVuYW1lIHNob3VsZCBiZSBJbnZhbGlkU3RhdGVFcnJvci4g
V2FzIE5vdEZvdW5kRXJyb3IuCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSCitQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJvcicKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tY2xv
c2UtaW4tdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggNjVlZDg1ZDQ4MTlkZDAwYTNl
MGUzNGFjOWM0NGQyOWNjNGRhMWQwYi4uMThmMzNiOGI0NmUyZWI1NDJjY2I5NDgxODkxY2JlYTgz
ZGFlMDMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWNsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhw
ZWN0ZWQudHh0CkBAIC0xMCwxMiArMTAsMjIgQEAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDcpCiAKIAordXBncmFkZU5l
ZWRlZCgpOgorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24g
aXMgNwordHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24KK2RiLmNyZWF0ZU9i
amVjdFN0b3JlKCdvcycpCitkYi5jbG9zZSgpCisKK3RyYW5zYWN0aW9uLm9uY29tcGxldGU6Citz
YXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQorCiBvcGVuU3VjY2VzcygpOgotRkFJTCBzYXdU
cmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHNhd1Ry
YW5zYWN0aW9uQ29tcGxldGUgaXMgdHJ1ZQogZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1GQUlM
IGRiLnZlcnNpb24gc2hvdWxkIGJlIDcgKG9mIHR5cGUgbnVtYmVyKS4gV2FzICAob2YgdHlwZSBz
dHJpbmcpLgorUEFTUyBkYi52ZXJzaW9uIGlzIDcKIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ29zJykKLUZBSUwgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignb3MnKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24g
OAorRkFJTCB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdvcycpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNlcHRpb24gMTEK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1nYXRlZC1vbi1kZWxldGUtZXhwZWN0ZWQudHh0CmluZGV4IGVmMTUzZDBkOTRlMjA4YzFm
M2E0ZWE0Y2JiNmVkYTg1Yzk3YjNiODkuLjUyOGJlNzYxYTI5ZTIwOWEzMDdhNGFjZDM2MzFmMTk0
ODU4YzMwMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tZ2F0ZWQtb24tZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWdhdGVkLW9uLWRlbGV0ZS1leHBlY3RlZC50eHQKQEAg
LTQ2LDYgKzQ2LDEwIEBAIGNvbm5lY3Rpb24xLmNsb3NlKCkKIAogZGVsZXRlRGF0YWJhc2VTdWNj
ZXNzQ2FsbGJhY2soKToKIAordXBncmFkZU5lZWRlZENhbGxiYWNrKCk6CitQQVNTIGV2ZW50Lm5l
d1ZlcnNpb24gaXMgMQorUEFTUyBldmVudC5vbGRWZXJzaW9uIGlzIDAKKwogb3BlbldpdGhWZXJz
aW9uU3VjY2Vzc0NhbGxiYWNrKCk6CiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1pbnZhbGlk
LXNldHZlcnNpb24taGFzLW5vLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8t
c2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAppbmRleCBlNzRlNWFhN2ZiYWM2OGZhNTFmZGRhNTFh
NTRmZmU1M2Y2YjljYTU4Li5kMjhjYzdmZDAxMTliNjcxMDNiZDM5YzE2MGRjOWM0N2ZkMTM4OGZk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWlu
dmFsaWQtc2V0dmVyc2lvbi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWludmFsaWQtc2V0dmVyc2lv
bi1oYXMtbm8tc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dApAQCAtMTEsOCArMTEsMTMgQEAgaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGRlbGV0ZVN1Y2Nlc3MoKToKIHJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiAKK2ZpcnN0VXBncmFkZU5lZWRlZENhbGxiYWNr
KCk6Citnb3RGaXJzdFVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWUKK1BBU1MgZXZlbnQub2xkVmVy
c2lvbiBpcyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgMgorCiBmaXJzdFN1Y2Nlc3NFdmVu
dEhhbmRsZXIoKToKLUZBSUwgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290Rmlyc3RVcGdyYWRlTmVlZGVkRXZlbnQgaXMgdHJ1ZQog
Y29ubmVjdGlvbjEgPSBldmVudC50YXJnZXQucmVzdWx0CiBjb25uZWN0aW9uMS5vbnZlcnNpb25j
aGFuZ2UgPSB1bmV4cGVjdGVkVmVyc2lvbkNoYW5nZUNhbGxiYWNrCiBQQVNTIFN0cmluZyhjb25u
ZWN0aW9uMSkgaXMgIltvYmplY3QgSURCRGF0YWJhc2VdIgpAQCAtMjQsNyArMjksMTMgQEAgcmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24nKQogcmVxdWVzdC5vbmVycm9yID0gc2V0VmVy
c2lvbkVycm9yCiByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2sK
IHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjawotRkFJTCBvbnZl
cnNpb25jaGFuZ2UgY2FsbGVkIHVuZXhwZWN0ZWRseQorCitzZXRWZXJzaW9uRXJyb3IoKToKK09w
ZW4gdXAgYSBuZXcgZGIgdG8gZW5zdXJlIHRoYXQgaWYgY29ubmVjdGlvbjEgd2VyZSB0byBnZXQg
YSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCBpdCB3aWxsIGJlIGRlbGl2ZXJlZCBiZWZvcmUgdGhlIHRl
c3QgZmluaXNoZXMKK25ld19kYiA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSArICcyJykKK25ld19k
Yi5vbnN1Y2Nlc3MgPSBuZXdEQlN1Y2Nlc3MKKworbmV3REJTdWNjZXNzKCk6CiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWxvbmctcXVldWUt
ZXhwZWN0ZWQudHh0CmluZGV4IDY5OTIwOWFmNzdkMzFhMmFlZGNiZmE0ZDQzMWI5M2RiMWFlMTEy
ZGQuLmNlZmYwOTVjM2Y2MzkwNzY3OTM2OTRkMTU3ZTZmYTEzMjAxYjM2N2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tbG9uZy1xdWV1ZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1s
b25nLXF1ZXVlLWV4cGVjdGVkLnR4dApAQCAtNjUsOCArNjUsMTMgQEAgRkFJTCBldmVudC5vbGRW
ZXJzaW9uIHNob3VsZCBiZSBub24tbnVsbC4gV2FzIHVuZGVmaW5lZAogRkFJTCBldmVudC5uZXdW
ZXJzaW9uIHNob3VsZCBiZSBudWxsIChvZiB0eXBlIG9iamVjdCkuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBpcyBudWxsCiAKK3Vw
Z3JhZGVOZWVkZWRDYWxsYmFjaygpOgorZ290VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZQorUEFT
UyBldmVudC5uZXdWZXJzaW9uIGlzIDEKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBpcyAwCisKIG9w
ZW5XaXRoVmVyc2lvblN1Y2Nlc3NDYWxsYmFjaygpOgotRkFJTCBnb3RVcGdyYWRlTmVlZGVkRXZl
bnQgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZ290VXBncmFkZU5lZWRlZEV2ZW50
IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC5vYmplY3RTdG9yZU5hbWVzLmxlbmd0
aCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tb3Blbi13aXRoLXZlcnNpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1v
cGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKaW5kZXggMzM3MGNhZDAwNDcxNmMzZDQ5Yzli
ODViMTVmODZhOWQ5OWNlYWRkYi4uOTA1NDc4ZGRlNDg3MjI4MzJjODEwYzJkNjkzYmQyNjE5MjM4
OWFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1leHBlY3RlZC50eHQKQEAg
LTEzLDE3ICsxMywzMyBAQCBTaG91bGQgdHJpZ2dlcjoKIDQuMS43OiBJZiB0aGUgdmVyc2lvbiBv
ZiBkYiBpcyBsb3dlciB0aGFuIHZlcnNpb24sIHRoZW4gcnVuIHRoZSBzdGVwcyBmb3IgcnVubmlu
ZyBhICJ2ZXJzaW9uY2hhbmdlIiB0cmFuc2FjdGlvbiB1c2luZyBjb25uZWN0aW9uLCB2ZXJzaW9u
LCByZXF1ZXN0IGFuZCB1cGdyYWRlIGNhbGxiYWNrLgogNC4xLjk6IFJldHVybiBjb25uZWN0aW9u
LgogcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgNykKLUZBSUwgU3RyaW5nKHJlcXVl
c3QpIHNob3VsZCBiZSBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdLiBXYXMgW29iamVjdCBJREJS
ZXF1ZXN0XS4KK1BBU1MgU3RyaW5nKHJlcXVlc3QpIGlzICJbb2JqZWN0IElEQk9wZW5EQlJlcXVl
c3RdIgogCitQQVNTIEluIHRoZSB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRlcjoKK1Rlc3QgNC44
LjkuMToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBTdHJpbmcoZGIpIGlzICJbb2Jq
ZWN0IElEQkRhdGFiYXNlXSIKK1Rlc3QgNC44LjkuMzoKK1BBU1MgZXZlbnQub2xkVmVyc2lvbiBp
cyAwCitQQVNTIGV2ZW50Lm5ld1ZlcnNpb24gaXMgNworUEFTUyBldmVudC50YXJnZXQucmVhZHlT
dGF0ZSBpcyAiZG9uZSIKK1Rlc3QgNC4xLjQ6CitQQVNTIGRiLm5hbWUgaXMgZGJuYW1lCitQQVNT
IGRiLnZlcnNpb24gaXMgNworUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCit0
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbgorUEFTUyBTdHJpbmcodHJhbnNh
Y3Rpb24pIGlzICJbb2JqZWN0IElEQlRyYW5zYWN0aW9uXSIKK29zID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInNvbWVPUyIpCitzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0gdHJ1ZQogCiBvcGVuU3Vj
Y2VzcygpOgogVGVzdCA0LjEuNywgdGhhdCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gd2Fz
IHJ1bi4KLUZBSUwgc2F3VXBncmFkZU5lZWRlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgot
RkFJTCBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQ
QVNTIHNhd1VwZ3JhZGVOZWVkZWQgaXMgdHJ1ZQorUEFTUyBzYXdUcmFuc2FjdGlvbkNvbXBsZXRl
IGlzIHRydWUKIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogS2luZCBvZiB0ZXN0IDQuMS45Ogog
UEFTUyBTdHJpbmcoZGIpIGlzICJbb2JqZWN0IElEQkRhdGFiYXNlXSIKLUZBSUwgZGIudmVyc2lv
biBzaG91bGQgYmUgNyAob2YgdHlwZSBudW1iZXIpLiBXYXMgIChvZiB0eXBlIHN0cmluZykuCitQ
QVNTIGRiLnZlcnNpb24gaXMgNwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYmxvY2tlZC5qcwppbmRleCAzZDE4ZGNhNzc1MWRj
Yzk3MDQwNTgzMTM3ZDgyNzM5MzdlOWI1OTQ4Li4yNGU1OTdkYjhiNmZhY2IyYjA1Nzk0NjFmMjk1
NjM3MzkyNTJmNmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW50dmVyc2lvbi1ibG9ja2VkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWJsb2NrZWQuanMKQEAgLTMwLDcgKzMwLDcg
QEAgZnVuY3Rpb24gZmlyc3RVcGdyYWRlTmVlZGVkQ2FsbGJhY2soZXZ0KQogICAgIGV2YWxBbmRM
b2coImdvdEZpcnN0VXBncmFkZU5lZWRlZEV2ZW50ID0gdHJ1ZSIpOwogICAgIHNob3VsZEJlKCJl
dmVudC5vbGRWZXJzaW9uIiwgIjAiKTsKICAgICBzaG91bGRCZSgiZXZlbnQubmV3VmVyc2lvbiIs
ICIyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcoZXZlbnQpIiwgIltvYmpl
Y3QgSURCVXBncmFkZU5lZWRlZEV2ZW50XSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
U3RyaW5nKGV2ZW50KSIsICJbb2JqZWN0IElEQlZlcnNpb25DaGFuZ2VFdmVudF0iKTsKIH0KIAog
Z290QmxvY2tlZEV2ZW50ID0gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>