<?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>233935</bug_id>
          
          <creation_ts>2021-12-07 10:18:25 -0800</creation_ts>
          <short_desc>[Cocoa] Web Inspector: provide a way for _WKInspectorExtension clients to be to notified when an extension tab navigates</short_desc>
          <delta_ts>2021-12-09 12:59:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821094</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 10:18:25 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821095</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 10:18:42 -0800</bug_when>
    <thetext>&lt;rdar://86123899&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821102</commentid>
    <comment_count>2</comment_count>
      <attachid>446198</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 10:27:11 -0800</bug_when>
    <thetext>Created attachment 446198
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821107</commentid>
    <comment_count>3</comment_count>
      <attachid>446198</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-07 10:41:39 -0800</bug_when>
    <thetext>Comment on attachment 446198
Patch v1.0

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

&gt; Source/WebInspectorUI/UserInterface/Views/WebInspectorExtensionTabContentView.js:119
&gt; +        if (!this._frameContentDidLoad || !this.element.isConnected)

Checking `!this._frameContentDidLoad` seems kinda redundant here since the only call site to the method will have just unconditionally set it to `true`.

&gt; Tools/TestWebKitAPI/DeprecatedGlobalValues.cpp:37
&gt; +bool extensionTabDidNavigateWasCalled { false };

Why are we adding this to `DeprecatedGlobalValues`? The name here suggests to me we shouldn&apos;t be adding more properties here. Could this just be a static property in WKInspectorExtensionDelegate.mm instead like `sharedNewURLAfterNavigation`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821140</commentid>
    <comment_count>4</comment_count>
      <attachid>446198</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 11:39:09 -0800</bug_when>
    <thetext>Comment on attachment 446198
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/WebInspectorExtensionTabContentView.js:119
&gt;&gt; +        if (!this._frameContentDidLoad || !this.element.isConnected)
&gt; 
&gt; Checking `!this._frameContentDidLoad` seems kinda redundant here since the only call site to the method will have just unconditionally set it to `true`.

I&apos;m not sure this._frameContentDidLoad makes sense any more, as the iframe is expected to go through several navigations. I&apos;ll try removing it. Client code should just ignore URLs like about:blank.

&gt;&gt; Tools/TestWebKitAPI/DeprecatedGlobalValues.cpp:37
&gt;&gt; +bool extensionTabDidNavigateWasCalled { false };
&gt; 
&gt; Why are we adding this to `DeprecatedGlobalValues`? The name here suggests to me we shouldn&apos;t be adding more properties here. Could this just be a static property in WKInspectorExtensionDelegate.mm instead like `sharedNewURLAfterNavigation`?

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821151</commentid>
    <comment_count>5</comment_count>
      <attachid>446216</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 11:56:34 -0800</bug_when>
    <thetext>Created attachment 446216
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821191</commentid>
    <comment_count>6</comment_count>
      <attachid>446216</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-07 13:07:26 -0800</bug_when>
    <thetext>Comment on attachment 446216
Patch v1.1

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

rs=me

&gt; Source/WebInspectorUI/ChangeLog:9
&gt; +        * UserInterface/Views/WebInspectorExtensionTabContentView.js:

Can you add the reason `_frameContentDidLoad` is no longer necessary?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorExtensionDelegate.h:58
&gt; + * @abstract Called when a tab associated with this extension has navigated to a new URL.
&gt; + * @param tabIdentifier Identifier for the tab that navigated.
&gt; + * @param URL The new URL for the extension tab&apos;s page.

Nit: missing `@param extension`. Also missing below on :63-64 if you feel like fixing that in a drive-by here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821288</commentid>
    <comment_count>7</comment_count>
      <attachid>446256</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-07 16:54:12 -0800</bug_when>
    <thetext>Created attachment 446256
Patch v1.2

Newest patch incorporates a workaround in order to get and set the iframe&apos;s document.location via evaluateScriptInExtensionTab().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821769</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-08 13:52:15 -0800</bug_when>
    <thetext>A new patch is needed to address the API test failures seen on EWS and confirmed locally.

The basic issue is that the test immediately evaluates in the extension tab after -createTab: returns. With the changes in this patch, the extension iframe bounces from src=&quot;&quot; to the actual page, introducing a delay. The assertions are failing because the test code is being evaluated in the initial iframe page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821975</commentid>
    <comment_count>9</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-08 20:25:13 -0800</bug_when>
    <thetext>(In reply to BJ Burg from comment #8)
&gt; A new patch is needed to address the API test failures seen on EWS and
&gt; confirmed locally.
&gt; 
&gt; The basic issue is that the test immediately evaluates in the extension tab
&gt; after -createTab: returns. With the changes in this patch, the extension
&gt; iframe bounces from src=&quot;&quot; to the actual page, introducing a delay. The
&gt; assertions are failing because the test code is being evaluated in the
&gt; initial iframe page.

I misspoke, it is the showTab command that makes the iframe visible and triggers the loading sequence. We need to wait for the loading sequence to finish before returning from the showTab command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822173</commentid>
    <comment_count>10</comment_count>
      <attachid>446562</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-09 10:22:32 -0800</bug_when>
    <thetext>Created attachment 446562
Patch v1.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822227</commentid>
    <comment_count>11</comment_count>
      <attachid>446562</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-09 11:24:48 -0800</bug_when>
    <thetext>Comment on attachment 446562
Patch v1.3

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

rs=me

&gt; Source/WebInspectorUI/ChangeLog:9
&gt; +        In order for this to work correctly, we cannot rely on the &lt;iframe src&gt; attribute

Can we be a bit more specific about what &quot;this&quot; refers to here?

&gt; Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:239
&gt; +    // Returns a string (WI.WebInspectorExtension.ErrorCode) if an error occurred before attempting to switch tabs.

Are you saying the return type here for an error is different than the one for `createTabForExtension` on :213, or is it actually the same? If it&apos;s the same type, it would be nice for the comments to match.

&gt; Source/WebInspectorUI/UserInterface/Views/WebInspectorExtensionTabContentView.js:76
&gt; +    whenPageAvailable()

The naming of this is odd IMO, although I also don&apos;t immediately see a great naming scheme for functions that returns promises either... Maybe `extensionPageAvailablePromise` (and similar naming for the underlying variable) would make it clearer that this returns a promise?

&gt; Source/WebInspectorUI/UserInterface/Views/WebInspectorExtensionTabContentView.js:137
&gt; +        console.assert(payload.result, &quot;Should be able to unwrap evaluation in extension tab!&quot;);

Nit: Would be nice to have the `payload` as a third parameter here to help with debugging later if we ever fail to assert this.

&gt; Tools/ChangeLog:13
&gt; +        Drive-by, fix an outdated completion handler type signature.

Is this necessary for this patch? If not, could we do this in a followup and take care of the other outdated completion handler signatures using `_Nullable` in this file (and WKInspectorExtensionDelegate.mm) as well - it seems odd we would only fix these two.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:309
&gt; +    [[webView _inspector] showExtensionTabWithIdentifier:sharedExtensionTabIdentifier.get() completionHandler:^(NSError * error) {

Style: Extra space between s/`NSError * error`/`NSError *error`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822255</commentid>
    <comment_count>12</comment_count>
      <attachid>446587</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-09 12:12:23 -0800</bug_when>
    <thetext>Created attachment 446587
Patch v1.3.1 - for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822273</commentid>
    <comment_count>13</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-09 12:55:31 -0800</bug_when>
    <thetext>Committed r286799 (245039@trunk): &lt;https://commits.webkit.org/245039@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446198</attachid>
            <date>2021-12-07 10:27:11 -0800</date>
            <delta_ts>2021-12-07 11:56:32 -0800</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-233935-20211207102710.patch</filename>
            <type>text/plain</type>
            <size>31331</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk5MjRmMDI1NjdjNDRj
M2M4MTQ3YTliZWZhNmZhZGI5NzZjZjg0ZS4uMTczOTFkZDUwNDk2YzQ4MTgyOWRlNTVlZDQ5ZmEw
ZGY5MGM0ODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8g
bm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8v
ODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyBJbnNwZWN0b3JGcm9udGVuZEhvc3QgaG9va3MgdG8gbm90aWZ5IHRoZSBjbGll
bnQgYWJvdXQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKwogMjAyMS0xMi0wMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRh
dGEgdmlhIFdLV2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMDU5
N2ExMTRmMmE4ZTkzNzU5M2YyZTlkZGZjMmE4ODliMjBkNGJhYS4uOWRmZWM2MTZmMDQ5MmYwMzZk
YWUzNWE1OTgzM2IwMWIxNmU5MWRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JF
eHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIg
bmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5XZWJJbnNwZWN0
b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2V4dGVuc2lvbkZyYW1lRGlkTG9h
ZCk6CisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuX21heWJlRGlzcGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgIERp
c3BhdGNoIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiIHdpdGggdGhlIG5ldyBVUkwgd2hlbiB0aGUg
ZXh0ZW5zaW9uIHRhYiBpZnJhbWUgY29tcGxldGVzIGEgbG9hZC4KKyAgICAgICAgRG9uJ3Qgbm90
aWZ5IHRoZSBjbGllbnQgaWYgdGhlIGV4dGVuc2lvbiB0YWIgaGFzIG5vdCB5ZXQgbG9hZGVkLgor
CiAyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IGAqdmlgIChpbmxpbmUpIGFuZCBgKnZiYCAoYmxvY2sp
IHZpZXdwb3J0IHVuaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmMWQ0ZjQwNTZhYzEwOTI5YjE0ZGVjMDk1NjY2
NzI0ZDQxMTgxZGUuLjAxNWU1MjMwZDkyMTRiYzA1Zjk1ODI1YTU3OTQ0NWUyZmE5ZWMwNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZv
ciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFu
IGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJpbmcg
dG8gbm90aWZ5IGNsaWVudHMgd2hlbiBhbiBleHRlbnNpb24gdGFiIGxvYWRzLiBUaGlzIGlzIGlt
cGxlbWVudGVkIHNpbWlsYXJseSB0bworICAgICAgICAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZFNo
b3dFeHRlbnNpb25UYWI6IGFuZCAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVFeHRlbnNpb25U
YWI6LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGll
bnQuaDoKKyAgICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0
ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tOgorICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVj
dG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICog
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JV
STo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
ZGlkSGlkZUV4dGVuc2lvblRhYik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpk
aWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaDoKKwogMjAyMS0xMi0wMyAgUm9iZXJ0IEplbm5lciAgPEplbm5lckBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODY0ODcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDI2Nzg4
M2Q5OTI1MWUyZWI1ZWViNDkyMGM2YzAwNjA2NjViNmM5MzcuLmFhMzIyNjUxNmU4ZmY1NjQ2OWY4
OTJhYzgzM2ExZWY1ZWZlYTZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25J
RCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIHsgfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKaW5kZXggMjE4ZGY2YTE5MTEyOTQ4MTUzYTFkYmY0OTVlZjU1ZWEwZjFlNmY3
ZS4uOGFhZGFkMWZiYWVlMzg3ZTg5NzBhNjVmMWYyOTdlZjllZDJhZjk4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTcw
Nyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpZEhpZGVFeHRlbnNp
b25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QKICAgICBtX2NsaWVudC0+ZGlk
SGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lk
IEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgU3Ry
aW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCwgY29uc3QgU3Ry
aW5nJiBuZXdVUkxTdHJpbmcpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihleHRlbnNpb25J
RCwgZXh0ZW5zaW9uVGFiSUQsIHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBTdHJp
bmcmIG5ld1VSTFN0cmluZykKIHsKICAgICBpZiAoIW1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDdiM2JhYWQ3MWYw
ZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNkMWFiYWUuLjJmN2UwNzM0YzNhYjJjM2FkYWY2YTczMDAw
N2E4M2M3MDU3MGJiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklEKTsKICAg
ICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29u
c3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lv
blRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRh
YklELCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdh
dGUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gZXZh
bHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJh
bWUsIGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA1MGUxNGRk
YzBmYjAyMDhlYWVjYzM2ZWRhOWY0NjE0NjA1MWU4YTZlLi45ZmFmNzU3MTJjNTQyNDY4NGRhYjFl
YjUwYzk2N2U1YWJjOGVjYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYgKzEwMCw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRlbnNpb25zOwogICAgIFtDb25kaXRp
b25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZFNob3dFeHRlbnNpb25UYWIo
RE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwogICAgIFtD
b25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZEhpZGVFeHRlbnNp
b25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwor
ICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKERPTVN0cmluZyBleHRlbnNpb25JRCwgRE9NU3RyaW5nIGV4dGVuc2lv
blRhYklELCBET01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SX0VY
VEVOU0lPTlNdIHVuZGVmaW5lZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoRE9NU3RyaW5nIG5l
d1VSTCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSBhbnkgZXZhbHVh
dGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCBleHRlbnNpb25GcmFtZSwg
RE9NU3RyaW5nIHNjcmlwdFNvdXJjZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJ
bnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcwppbmRleCAxYjNhOTg0MGM2Y2Y1NGJl
Y2ZiNDMwYjZkNjM4MWNiZDNhOGExMDhmLi4zN2Y4ODYxNTEwZTVkNDYxZmQ5YmM2YzRlZmE4MThi
OGZmM2IxYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25UYWJDb250ZW50Vmlldy5qcwpAQCAtMTEwLDkgKzExMCwxOSBAQCBXSS5XZWJJbnNwZWN0b3JF
eHRlbnNpb25UYWJDb250ZW50VmlldyA9IGNsYXNzIFdlYkluc3BlY3RvckV4dGVuc2lvblRhYkNv
bnRlbnRWaQogICAgIF9leHRlbnNpb25GcmFtZURpZExvYWQoKQogICAgIHsKICAgICAgICAgdGhp
cy5fZnJhbWVDb250ZW50RGlkTG9hZCA9IHRydWU7CisgICAgICAgIHRoaXMuX21heWJlRGlzcGF0
Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYigpOwogICAgICAgICB0aGlzLl9tYXliZURpc3BhdGNo
RGlkU2hvd0V4dGVuc2lvblRhYigpOwogICAgIH0KIAorICAgIF9tYXliZURpc3BhdGNoRGlkTmF2
aWdhdGVFeHRlbnNpb25UYWIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUNvbnRl
bnREaWRMb2FkIHx8ICF0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgaWYgKEluc3BlY3RvckZyb250ZW5kSG9zdC5zdXBwb3J0c1dlYkV4dGVu
c2lvbnMpCisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuZGlkTmF2aWdhdGVFeHRl
bnNpb25UYWIodGhpcy5fZXh0ZW5zaW9uLmV4dGVuc2lvbklELCB0aGlzLl9leHRlbnNpb25UYWJJ
RCwgdGhpcy5faWZyYW1lRWxlbWVudC5zcmMpOworICAgIH0KKwogICAgIF9tYXliZURpc3BhdGNo
RGlkU2hvd0V4dGVuc2lvblRhYigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2ZyYW1lQ29u
dGVudERpZExvYWQgfHwgIXRoaXMuZWxlbWVudC5pc0Nvbm5lY3RlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQu
aAppbmRleCAzYWY4M2I4MmExMzE5YjQ1ZGRhNmQ5NjFmNWE1ODY4MGY0ZGI2MzUyLi4zYTUxNjU2
YzZkOGZiZGRlOTk5NWY1Nzc4MDcwNGQ5NTM2MmJmNGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbkNsaWVudC5oCkBA
IC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5z
aW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBXVEY6OlVSTCYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgV1RGOjpVUkwmKSB7IH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKaW5kZXggNTBjYmRhZTczMWVlODdh
NWVmYTZkODdiNzk4YzRlMjQ1OTdhM2JkMy4uMzQ1MjZhODQ0ZWMzYjU2YTFmZDRhYTk2NTJlYWUx
ZDc1MTM1NGY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTUyLDYg
KzUyLDEzIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgKi8KIC0gKHZvaWQpaW5zcGVjdG9y
RXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkSGlkZVRhYldp
dGhJZGVudGlmaWVyOihOU1N0cmluZyAqKXRhYklkZW50aWZpZXI7CiAKKy8qKgorICogQGFic3Ry
YWN0IENhbGxlZCB3aGVuIGEgdGFiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4dGVuc2lvbiBoYXMg
bmF2aWdhdGVkIHRvIGEgbmV3IFVSTC4KKyAqIEBwYXJhbSB0YWJJZGVudGlmaWVyIElkZW50aWZp
ZXIgZm9yIHRoZSB0YWIgdGhhdCBuYXZpZ2F0ZWQuCisgKiBAcGFyYW0gVVJMIFRoZSBuZXcgVVJM
IGZvciB0aGUgZXh0ZW5zaW9uIHRhYidzIHBhZ2UuCisgKi8KKy0gKHZvaWQpaW5zcGVjdG9yRXh0
ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkTmF2aWdhdGVUYWJX
aXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyIG5ld1VSTDooTlNVUkwgKilu
ZXdVUkw7CisKIC8qKgogICogQGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBpbnNwZWN0ZWQgcGFn
ZSBoYXMgbmF2aWdhdGVkIHRvIGEgbmV3IFVSTC4KICAqIEBwYXJhbSB1cmwgVGhlIG5ldyBVUkwg
Zm9yIHRoZSBpbnNwZWN0ZWQgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlLmgKaW5kZXggMjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFmNWExNmNiZGFmYS4uNzU4
N2U3ZWNiZDQ0YTlkYjQ4N2Y0MmJhZDQ4OTExYjk1MTNhMTMxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgLy8gQVBJOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQKICAgICAgICAgdm9pZCBkaWRTaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsK
ICAgICAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3ZlcnJpZGU7
CiAgICAgICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJy
aWRlOwogCiAgICAgICAgIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlJiBtX2luc3BlY3RvckV4
dGVuc2lvbkRlbGVnYXRlOwpAQCAtNjcsNiArNjgsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB7
CiAgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5zaW9uRGlkU2hvd1RhYldpdGhJZGVudGlmaWVy
IDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRIaWRlVGFiV2l0aElkZW50
aWZpZXIgOiAxOworICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZE5hdmlnYXRlVGFi
V2l0aElkZW50aWZpZXIgOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZSA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggZGM2NzcwMGRkMTY3
ZjVmYjQ0ZjJiY2FhOTcwZDcxZDBlZDVjYWY4ZC4uMTBjNzIzNGVlYjgwNDFhZDI2ZjNjOGIxZDEw
YTUwYzUwMWE0NjQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5t
bQpAQCAtNDEsNiArNDEsNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICppbgogewogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmllciA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lv
bjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5z
cGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVUYWJXaXRo
SWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25E
aWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZp
ZXI6bmV3VVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbklu
c3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6KV07CiAK
ICAgICBpbnNwZWN0b3JFeHRlbnNpb24tPl9leHRlbnNpb24tPnNldENsaWVudChtYWtlVW5pcXVl
UmVmPEluc3BlY3RvckV4dGVuc2lvbkNsaWVudD4oKnRoaXMpKTsKQEAgLTg2LDYgKzg3LDE4IEBA
IHZvaWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVu
dDo6ZGlkSGlkZUV4dGVuc2lvblRhYihjCiAgICAgW2RlbGVnYXRlIGluc3BlY3RvckV4dGVuc2lv
bjptX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1faW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgp
LmdldCgpIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpleHRlbnNpb25UYWJJRF07CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6
ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYg
ZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVu
c2lvbkRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRl
OworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBp
bnNwZWN0b3JFeHRlbnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2luc3BlY3Rv
ckV4dGVuc2lvbi5nZXQoKS5nZXQoKSBkaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyOmV4dGVu
c2lvblRhYklEIG5ld1VSTDpuZXdVUkxdOworfQorCiB2b2lkIEluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZShjb25zdCBXVEY6OlVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9pbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5LmNwcAppbmRleCAxY2FmN2NiMDRiODAzNGM1NTBiZDNmOTY1YzVkNTAxMTA1MjNl
NzQ0Li5lODg2NjA4ZDE4NmY2NjNjNWU5ZGRlYWU0ZDgzM2IwYWNjNTg2NjBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTI2OCw2
ICsyNjgsMjAgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6
ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3IKICAgICBleHRlbnNpb25DbGllbnQt
PmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIFdlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwp
Cit7CisgICAgYXV0byBpdCA9IG1fZXh0ZW5zaW9uQVBJT2JqZWN0TWFwLmZpbmQoZXh0ZW5zaW9u
SUQpOworICAgIGlmIChpdCA9PSBtX2V4dGVuc2lvbkFQSU9iamVjdE1hcC5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmVmUHRyPEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uPiBleHRlbnNp
b24gPSBpdC0+dmFsdWU7CisgICAgYXV0byBleHRlbnNpb25DbGllbnQgPSBleHRlbnNpb24tPmNs
aWVudCgpOworICAgIGlmICghZXh0ZW5zaW9uQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBleHRlbnNpb25DbGllbnQtPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklE
LCBuZXdVUkwpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclBy
b3h5OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAg
Zm9yIChhdXRvJiBleHRlbnNpb24gOiBjb3B5VG9WZWN0b3IobV9leHRlbnNpb25BUElPYmplY3RN
YXAudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eS5oCmluZGV4IGQxOTdjOWVhYzIwYjUyYzJkOTIzNWU2ZGEwNzdhOGQ2ZDZiYTBhN2Yu
LjU3MWFmNjI3NDk3OGFiYjFhNWVmN2Y0YTMzOGYzYWM4NTJlMjNiM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02OCw2ICs2OCw3IEBA
IHB1YmxpYzoKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSBJ
UEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAg
dm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4
dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURp
ZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiAgICAgLy8gTm90aWZpY2F0aW9ucy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA2NDMzMTQzMjRkZDVkMmMxNWY4MzFjYjM3MjY2YWQ4NjFiN2I4YTM1Li40MmFh
MzdmMGQ4ZjVjODY5ODNhOThhYzk1MDM4MDRkMzkxNWQzMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eSB7CiAgICAgRGlkU2hvd0V4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uSUQs
IFN0cmluZyBleHRlbnNpb25UYWJJRCkKICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFiKFN0cmluZyBl
eHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklEKQorICAgIERpZE5hdmlnYXRlRXh0ZW5z
aW9uVGFiKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklELCBVUkwgbmV3
VVJMKQogICAgIEluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShVUkwgbmV3VVJMKQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCmluZGV4IGM4YWQzMTg2OTVkOWFjNWRkZGYyZjkxY2IyMjA1NmUxYzY2
YjZkYmMuLjNjZWVhZDg1NDQyYWJmMDUzYTU5OTQwODJkODliZTc5NzJlMDg0ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCkBAIC0zMDYsNiArMzA2LDE0IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYg
ZXh0CiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4dGVu
c2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6
OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4
dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJ
RCwgY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlkTmF2aWdh
dGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwpOworfQor
CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29u
c3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJLmgKaW5kZXggMzZjNzAxMTNjZjRiN2Y5MjliMTRhYWFjOWVkNDU3NDc2MWVkNTVk
ZS4uZDI5ODlhZGEzMTU4ZDJlN2NiNDU1N2E4OWM0YWM4YTU5ZjIwYjM1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVj
dG9yVUkuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzV2Vi
RXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJ
RCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwm
KSBvdmVycmlkZTsKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwm
KSBvdmVycmlkZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGZhN2NjZDk0OTc5NjA1MzJlMmMw
NDk3MjM0NGQzZjMxZDc5M2I2MjcuLjhkNTRmMzU4MDBjNmZmMmFjNjE3ODRjZmE1NTQ4NmRkZWI3
ZDgxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zODAsNiArMzgwLDE0IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3Qg
U3RyaW5nCiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4
dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OmRp
ZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIGlmICghbV9l
eHRlbnNpb25Db250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2V4dGVuc2lvbkNv
bnRyb2xsZXItPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25U
YWJJRCwgbmV3VVJMKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSTo6aW5zcGVjdGVkUGFnZURp
ZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9leHRlbnNpb25Db250
cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5oCmluZGV4IGY2ZWQ3MDRjZmFkY2UwOTRlMDk1MThlNTZmOTk2MWFjYTE3ZTI0
OGEuLjgzNmM4MDU4MmQ4NzZlNDU1YjkwNGYwYzMwNWU1YjMyMDUxYzAzZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAg
LTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMo
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQm
LCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3ZlcnJpZGU7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3Bw
CmluZGV4IDcyMTZiOTNkMzYzYzI0MjhhZTM3NzcwYTRlNTQ1M2NkOWY4M2NmYmQuLmJmMjEwOWNl
OTM5ZGU2ZDdmZmYyMzhlOWVkODBlNGJjNjc4N2MyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTQ0MCw2ICs0NDAsMTEgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHQKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eTo6RGlkSGlkZUV4dGVuc2lvblRhYiB7IGV4dGVuc2lvbklELCBleHRlbnNpb25U
YWJJRCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvblRhYklEJiBleHRlbnNpb25UYWJJRCwgY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OkRpZE5hdmlnYXRl
RXh0ZW5zaW9uVGFiIHsgZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwgfSwgbV9p
bnNwZWN0b3JQYWdlSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwp
CiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6
Okluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSB7IG5ld1VSTCB9LCBtX2luc3BlY3RvclBhZ2VJZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCmluZGV4
IDRhNzk3ZTNmY2Q1Yjg1N2MwZTcxZmYxODVlYmVmNjYwMWE3NjE2OWYuLmJkMDdhMTA0YTIzOTI1
NDIyZWZlOWExNTQxNzI2OGE3NDgxMzAxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIuaApAQCAtNzYsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGJh
Y2tzIGZyb20gdGhlIGZyb250ZW5kLgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJ
RCYpOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOworICAgIHZvaWQgZGlk
TmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKTsKICAgICB2b2lkIGluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjQ1MzQ0MGVmNWZmNTJl
ODFlZmRmN2VkMjkyZGE1MmMwOTdkNDdiLi40MjI5ZjZjODRmOWY4NDQ2OGIzM2E5ODMyMzI1ZDI0
ZDQ2NWE5YWQxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBf
V0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4
dGVuc2lvbiB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292
ZXJhZ2UgZm9yIC1pbnNwZWN0b3JFeHRlbnNpb246ZGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmll
cjpuZXdVUkw6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0RlcHJlY2F0ZWRHbG9iYWxWYWx1
ZXMuY3BwOgorICAgICAgICAocmVzZXRHbG9iYWxTdGF0ZSk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9EZXByZWNhdGVkR2xvYmFsVmFsdWVzLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tOgorICAgICAg
ICAoLVtJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5z
aW9uOmRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXI6bmV3VVJMOl0pOgorICAgICAgICAoVEVT
VCk6CisKIDIwMjEtMTItMDMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmV0Y2ggYW5kIHJlbW92ZSBmaWxlIHN5c3RlbSBkYXRhIHZpYSBXS1dlYnNpdGVEYXRh
U3RvcmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvRGVwcmVjYXRlZEdsb2JhbFZh
bHVlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0RlcHJlY2F0ZWRHbG9iYWxWYWx1ZXMuY3Bw
CmluZGV4IDQzZjQzMGJmYjY4YzhhZTMwMzM1ZjNhNjc0NWVkZTAxOGJhZDM2MTkuLmRlNDFiYjhj
MzYyNDdhODRmNjdjYmM1MWJkNTYzOTQwNDMxZTRhMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvRGVwcmVjYXRlZEdsb2JhbFZhbHVlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9EZXByZWNhdGVkR2xvYmFsVmFsdWVzLmNwcApAQCAtMzQsNiArMzQsNyBAQCBib29sIGRp
ZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgeyBmYWxzZSB9OwogYm9vbCBwZW5kaW5nQ2FsbGJh
Y2tXYXNDYWxsZWQgeyBmYWxzZSB9OwogYm9vbCBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVk
IHsgZmFsc2UgfTsKIGJvb2wgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkIHsgZmFs
c2UgfTsKK2Jvb2wgZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQgeyBmYWxzZSB9Owog
Ym9vbCBkaWRFbnRlclBpUCB7IGZhbHNlIH07CiBib29sIGRpZEV4aXRQaVAgeyBmYWxzZSB9Owog
Ym9vbCByZWFkeVRvQ29udGludWUgeyBmYWxzZSB9OwpAQCAtNTEsNSArNTIsNiBAQCB2b2lkIHJl
c2V0R2xvYmFsU3RhdGUoKQogICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxz
ZTsKICAgICBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAgaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgZXh0ZW5zaW9uVGFiRGlk
TmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQg
PSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvRGVwcmVjYXRlZEds
b2JhbFZhbHVlcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXByZWNhdGVkR2xvYmFsVmFsdWVz
LmgKaW5kZXggNTJmZDU0NGRjNGIzZTU0ZTg3YTE2OWUxNjQxMzA2YzA2NjE2YTM2Ny4uODQ2ODI4
ZGZiOWZiMjllZWRjNzEyMmU0NDk3NWUzYjU0ZjAwOGNkMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9EZXByZWNhdGVkR2xvYmFsVmFsdWVzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9EZXByZWNhdGVkR2xvYmFsVmFsdWVzLmgKQEAgLTM4LDYgKzM4LDcgQEAgZXh0ZXJuIGJv
b2wgZGlkU2hvd0V4dGVuc2lvblRhYldhc0NhbGxlZDsKIGV4dGVybiBib29sIHBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZDsKIGV4dGVybiBib29sIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQ7
CiBleHRlcm4gYm9vbCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQ7CitleHRlcm4g
Ym9vbCBleHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdhc0NhbGxlZDsKIGV4dGVybiBib29sIGRpZEVu
dGVyUGlQOwogZXh0ZXJuIGJvb2wgZGlkRXhpdFBpUDsKIGV4dGVybiBib29sIHJlYWR5VG9Db250
aW51ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQppbmRleCA4NzNh
MTBiYWVlYmViMGYwNGVjYzc4NzBkYTJmOTBlNTNkNDEyY2IwLi4xN2RmNTM2Mzc1ZDRkYTRlZGFl
ZGE1MDI1MWFiMjA3YTI4MjQ2Y2QyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1tCkBAIC04NCw2ICs4NCwxMSBAQCAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjoo
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbgogICAg
IGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWluc3Bl
Y3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZE5hdmln
YXRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllciBuZXdVUkw6KE5T
VVJMICopbmV3VVJMCit7CisgICAgZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0
cnVlOworfQorCiAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uICopZXh0ZW5zaW9uIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZTooTlNVUkwgKiluZXdVUkwK
IHsKICAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0cnVlOwpAQCAtMjM0
LDQgKzIzOSw5OCBAQCBURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUsIEluc3BlY3Rl
ZFBhZ2VOYXZpZ2F0ZWRDYWxsYmFja3MpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZw
ZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOwogfQogCisvLyBGSVhNRTogUmUtZW5hYmxlIHRoaXMg
dGVzdCBmb3IgZGVidWcgb25jZSB3ZWJraXQub3JnL2IvMjMxODQ3IGlzIGZpeGVkLgorI2lmICFk
ZWZpbmVkKE5ERUJVRykKK1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgRElTQUJM
RURfRXh0ZW5zaW9uVGFiTmF2aWdhdGVkQ2FsbGJhY2tzKQorI2Vsc2UKK1RFU1QoV0tJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZSwgRXh0ZW5zaW9uVGFiTmF2aWdhdGVkQ2FsbGJhY2tzKQorI2Vu
ZGlmCit7CisgICAgcmVzZXRHbG9iYWxTdGF0ZSgpOworCisgICAgLy8gSG9vayB1cCB0aGUgdGVz
dC1yZXNvdXJjZTogaGFuZGxlciBzbyB0aGF0IHdlIGNhbiBuYXZpZ2F0ZSB0byBhIGRpZmZlcmVu
dCB0ZXN0IGZpbGUuCisgICAgaWYgKCFzaGFyZWRVUkxTY2hlbWVIYW5kbGVyKQorICAgICAgICBz
aGFyZWRVUkxTY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RJbnNwZWN0b3JVUkxTY2hlbWVI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzaGFyZWRVUkxT
Y2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAInRlc3QtcmVzb3VyY2UiXTsKKworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1VJRGVsZWdhdGVG
b3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgbmV3XSk7CisKKyAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOworCisgICAgW1t3ZWJWaWV3IF9pbnNw
ZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0YWNoTG9j
YWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgLy8gUmVnaXN0ZXIgdGhlIHRlc3QgZXh0ZW5zaW9u
LgorICAgIGF1dG8gZXh0ZW5zaW9uSUQgPSBbTlNVVUlEIFVVSURdLlVVSURTdHJpbmc7CisgICAg
YXV0byBleHRlbnNpb25CdW5kbGVJZGVudGlmaWVyID0gQCJjb20uYXBwbGUud2Via2l0LlRoaXJk
RXh0ZW5zaW9uIjsKKyAgICBhdXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1lID0gQCJUaGlyZEV4dGVu
c2lvbiI7CisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJW
aWV3IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGV4dGVu
c2lvbkJ1bmRsZUlkZW50aWZpZXI6ZXh0ZW5zaW9uQnVuZGxlSWRlbnRpZmllciBkaXNwbGF5TmFt
ZTpleHRlbnNpb25EaXNwbGF5TmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9y
LCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKmV4dGVuc2lvbikgeworICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb24pOworICAgICAgICBz
aGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBleHRlbnNpb247CisKKyAgICAgICAgcGVuZGluZ0Nh
bGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbkRl
bGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIG5l
d10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gc2V0RGVsZWdhdGU6ZXh0ZW5zaW9u
RGVsZWdhdGUuZ2V0KCldOworCisgICAgYXV0byBiYXNlVVJMID0gW05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6
QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9oZWFkPjxi
b2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6YmFzZVVSTF07CisgICAg
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworICAgIEVYUEVD
VF9OU19FUVVBTChzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb24uZ2V0KCkuYWJzb2x1dGVTdHJp
bmcsIGJhc2VVUkwuYWJzb2x1dGVTdHJpbmcpOworICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZVdhc0NhbGxlZCA9IGZhbHNlOworCisgICAgLy8gQ3JlYXRlIGFuIGV4dGVuc2lvbiB0YWIuCisg
ICAgYXV0byBpY29uVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291cmNlOi8v
VGhpcmRFeHRlbnNpb24vSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIl07Cisg
ICAgYXV0byBzb3VyY2VVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6
Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwiXTsKKwor
ICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0
b3JFeHRlbnNpb24gY3JlYXRlVGFiV2l0aE5hbWU6QCJUaGlyZEV4dGVuc2lvbi1UYWIiIHRhYklj
b25VUkw6aWNvblVSTCBzb3VyY2VVUkw6c291cmNlVVJMIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNF
cnJvciAqZXJyb3IsIE5TU3RyaW5nICpleHRlbnNpb25UYWJJZGVudGlmaWVyKSB7CisgICAgICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVuc2lvblRh
YklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyID0gZXh0
ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0Nh
bGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
OworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZp
ZXI6c2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpe
KE5TRXJyb3IgKiBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAg
ICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBwZW5k
aW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBleHRlbnNpb25UYWJEaWROYXZpZ2F0
ZVdhc0NhbGxlZCA9IGZhbHNlOworICAgIGF1dG8gbmV3VVJMID0gW05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJ0ZXN0LXJlc291cmNlOi8vVGhpcmRFeHRlbnNpb24vSW5zcGVjdG9yRXh0ZW5zaW9uLWJh
c2ljLXBhZ2UuaHRtbCJdOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gZXZhbHVhdGVT
Y3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubG9jYXRpb24ucmVwbGFj
ZShcIiVAXCIpIiwgbmV3VVJMXSBpblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRh
YklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvciwgaWQg
cmVzdWx0KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgICAgICBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmV4dGVuc2lvblRhYkRpZE5hdmlnYXRlV2FzQ2FsbGVkKTsKKworICAgIC8vIFVu
cmVnaXN0ZXIgdGhlIHRlc3QgZXh0ZW5zaW9uLgorICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxl
ZCA9IGZhbHNlOworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSB1bnJlZ2lzdGVyRXh0ZW5zaW9u
OnNoYXJlZEluc3BlY3RvckV4dGVuc2lvbi5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJy
b3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisg
ICAgICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworfQorCiAj
ZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446216</attachid>
            <date>2021-12-07 11:56:34 -0800</date>
            <delta_ts>2021-12-07 16:54:11 -0800</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-233935-20211207115633.patch</filename>
            <type>text/plain</type>
            <size>30401</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk5MjRmMDI1NjdjNDRj
M2M4MTQ3YTliZWZhNmZhZGI5NzZjZjg0ZS4uMTczOTFkZDUwNDk2YzQ4MTgyOWRlNTVlZDQ5ZmEw
ZGY5MGM0ODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8g
bm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8v
ODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyBJbnNwZWN0b3JGcm9udGVuZEhvc3QgaG9va3MgdG8gbm90aWZ5IHRoZSBjbGll
bnQgYWJvdXQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKwogMjAyMS0xMi0wMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRh
dGEgdmlhIFdLV2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMDU5
N2ExMTRmMmE4ZTkzNzU5M2YyZTlkZGZjMmE4ODliMjBkNGJhYS4uOWRmZWM2MTZmMDQ5MmYwMzZk
YWUzNWE1OTgzM2IwMWIxNmU5MWRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JF
eHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIg
bmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5XZWJJbnNwZWN0
b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90b3R5cGUuX2V4dGVuc2lvbkZyYW1lRGlkTG9h
ZCk6CisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuX21heWJlRGlzcGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgIERp
c3BhdGNoIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiIHdpdGggdGhlIG5ldyBVUkwgd2hlbiB0aGUg
ZXh0ZW5zaW9uIHRhYiBpZnJhbWUgY29tcGxldGVzIGEgbG9hZC4KKyAgICAgICAgRG9uJ3Qgbm90
aWZ5IHRoZSBjbGllbnQgaWYgdGhlIGV4dGVuc2lvbiB0YWIgaGFzIG5vdCB5ZXQgbG9hZGVkLgor
CiAyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IGAqdmlgIChpbmxpbmUpIGFuZCBgKnZiYCAoYmxvY2sp
IHZpZXdwb3J0IHVuaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmMWQ0ZjQwNTZhYzEwOTI5YjE0ZGVjMDk1NjY2
NzI0ZDQxMTgxZGUuLjAxNWU1MjMwZDkyMTRiYzA1Zjk1ODI1YTU3OTQ0NWUyZmE5ZWMwNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZv
ciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFu
IGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJpbmcg
dG8gbm90aWZ5IGNsaWVudHMgd2hlbiBhbiBleHRlbnNpb24gdGFiIGxvYWRzLiBUaGlzIGlzIGlt
cGxlbWVudGVkIHNpbWlsYXJseSB0bworICAgICAgICAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZFNo
b3dFeHRlbnNpb25UYWI6IGFuZCAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVFeHRlbnNpb25U
YWI6LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGll
bnQuaDoKKyAgICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0
ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tOgorICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVj
dG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICog
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JV
STo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
ZGlkSGlkZUV4dGVuc2lvblRhYik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpk
aWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaDoKKwogMjAyMS0xMi0wMyAgUm9iZXJ0IEplbm5lciAgPEplbm5lckBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODY0ODcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDI2Nzg4
M2Q5OTI1MWUyZWI1ZWViNDkyMGM2YzAwNjA2NjViNmM5MzcuLmFhMzIyNjUxNmU4ZmY1NjQ2OWY4
OTJhYzgzM2ExZWY1ZWZlYTZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMoKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25J
RCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIHsgfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKaW5kZXggMjE4ZGY2YTE5MTEyOTQ4MTUzYTFkYmY0OTVlZjU1ZWEwZjFlNmY3
ZS4uOGFhZGFkMWZiYWVlMzg3ZTg5NzBhNjVmMWYyOTdlZjllZDJhZjk4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTcw
Nyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpZEhpZGVFeHRlbnNp
b25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QKICAgICBtX2NsaWVudC0+ZGlk
SGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lk
IEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgU3Ry
aW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCwgY29uc3QgU3Ry
aW5nJiBuZXdVUkxTdHJpbmcpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihleHRlbnNpb25J
RCwgZXh0ZW5zaW9uVGFiSUQsIHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBTdHJp
bmcmIG5ld1VSTFN0cmluZykKIHsKICAgICBpZiAoIW1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDdiM2JhYWQ3MWYw
ZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNkMWFiYWUuLjJmN2UwNzM0YzNhYjJjM2FkYWY2YTczMDAw
N2E4M2M3MDU3MGJiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklEKTsKICAg
ICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29u
c3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lv
blRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRh
YklELCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdh
dGUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gZXZh
bHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJh
bWUsIGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA1MGUxNGRk
YzBmYjAyMDhlYWVjYzM2ZWRhOWY0NjE0NjA1MWU4YTZlLi45ZmFmNzU3MTJjNTQyNDY4NGRhYjFl
YjUwYzk2N2U1YWJjOGVjYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYgKzEwMCw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRlbnNpb25zOwogICAgIFtDb25kaXRp
b25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZFNob3dFeHRlbnNpb25UYWIo
RE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwogICAgIFtD
b25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZEhpZGVFeHRlbnNp
b25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwor
ICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKERPTVN0cmluZyBleHRlbnNpb25JRCwgRE9NU3RyaW5nIGV4dGVuc2lv
blRhYklELCBET01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SX0VY
VEVOU0lPTlNdIHVuZGVmaW5lZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoRE9NU3RyaW5nIG5l
d1VSTCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSBhbnkgZXZhbHVh
dGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCBleHRlbnNpb25GcmFtZSwg
RE9NU3RyaW5nIHNjcmlwdFNvdXJjZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJ
bnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcwppbmRleCAxYjNhOTg0MGM2Y2Y1NGJl
Y2ZiNDMwYjZkNjM4MWNiZDNhOGExMDhmLi45MGM2MmQ1YTVkMzNhNjJlYjNmNTgzOWQ2MmU3NGVm
NjhmMzRiYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNp
b25UYWJDb250ZW50Vmlldy5qcwpAQCAtNDMsOCArNDMsNiBAQCBXSS5XZWJJbnNwZWN0b3JFeHRl
bnNpb25UYWJDb250ZW50VmlldyA9IGNsYXNzIFdlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRl
bnRWaQogICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKTsKICAgICAgICAgdGhpcy5faWZy
YW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGhpcy5fZXh0ZW5zaW9uRnJhbWVE
aWRMb2FkLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnNyYyA9IHRo
aXMuX3NvdXJjZVVSTDsKLQotICAgICAgICB0aGlzLl9mcmFtZUNvbnRlbnREaWRMb2FkID0gZmFs
c2U7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC0xMDksMTMgKzEwNywyMiBAQCBXSS5XZWJJ
bnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmlldyA9IGNsYXNzIFdlYkluc3BlY3RvckV4dGVu
c2lvblRhYkNvbnRlbnRWaQogCiAgICAgX2V4dGVuc2lvbkZyYW1lRGlkTG9hZCgpCiAgICAgewot
ICAgICAgICB0aGlzLl9mcmFtZUNvbnRlbnREaWRMb2FkID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5f
bWF5YmVEaXNwYXRjaERpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKCk7CiAgICAgICAgIHRoaXMuX21h
eWJlRGlzcGF0Y2hEaWRTaG93RXh0ZW5zaW9uVGFiKCk7CiAgICAgfQogCisgICAgX21heWJlRGlz
cGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMu
ZWxlbWVudC5pc0Nvbm5lY3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LnN1cHBvcnRzV2ViRXh0ZW5zaW9ucykKKyAgICAgICAgICAg
IEluc3BlY3RvckZyb250ZW5kSG9zdC5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYih0aGlzLl9leHRl
bnNpb24uZXh0ZW5zaW9uSUQsIHRoaXMuX2V4dGVuc2lvblRhYklELCB0aGlzLl9pZnJhbWVFbGVt
ZW50LnNyYyk7CisgICAgfQorCiAgICAgX21heWJlRGlzcGF0Y2hEaWRTaG93RXh0ZW5zaW9uVGFi
KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnJhbWVDb250ZW50RGlkTG9hZCB8fCAhdGhp
cy5lbGVtZW50LmlzQ29ubmVjdGVkKQorICAgICAgICBpZiAoIXRoaXMuZWxlbWVudC5pc0Nvbm5l
Y3RlZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAoSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LnN1cHBvcnRzV2ViRXh0ZW5zaW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaAppbmRleCAzYWY4
M2I4MmExMzE5YjQ1ZGRhNmQ5NjFmNWE1ODY4MGY0ZGI2MzUyLi4zYTUxNjU2YzZkOGZiZGRlOTk5
NWY1Nzc4MDcwNGQ5NTM2MmJmNGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbkNsaWVudC5oCkBAIC0zNyw2ICszNyw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSGlk
ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uVGFiSUQmLCBjb25zdCBXVEY6OlVSTCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnNw
ZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgV1RGOjpVUkwmKSB7IH0KIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKaW5kZXggNTBjYmRhZTczMWVlODdhNWVmYTZkODdiNzk4
YzRlMjQ1OTdhM2JkMy4uMzQ1MjZhODQ0ZWMzYjU2YTFmZDRhYTk2NTJlYWUxZDc1MTM1NGY5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTUyLDYgKzUyLDEzIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgKi8KIC0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihf
V0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkSGlkZVRhYldpdGhJZGVudGlmaWVy
OihOU1N0cmluZyAqKXRhYklkZW50aWZpZXI7CiAKKy8qKgorICogQGFic3RyYWN0IENhbGxlZCB3
aGVuIGEgdGFiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4dGVuc2lvbiBoYXMgbmF2aWdhdGVkIHRv
IGEgbmV3IFVSTC4KKyAqIEBwYXJhbSB0YWJJZGVudGlmaWVyIElkZW50aWZpZXIgZm9yIHRoZSB0
YWIgdGhhdCBuYXZpZ2F0ZWQuCisgKiBAcGFyYW0gVVJMIFRoZSBuZXcgVVJMIGZvciB0aGUgZXh0
ZW5zaW9uIHRhYidzIHBhZ2UuCisgKi8KKy0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJ
bnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmll
cjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyIG5ld1VSTDooTlNVUkwgKiluZXdVUkw7CisKIC8q
KgogICogQGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBpbnNwZWN0ZWQgcGFnZSBoYXMgbmF2aWdh
dGVkIHRvIGEgbmV3IFVSTC4KICAqIEBwYXJhbSB1cmwgVGhlIG5ldyBVUkwgZm9yIHRoZSBpbnNw
ZWN0ZWQgcGFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKaW5kZXgg
MjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFmNWExNmNiZGFmYS4uNzU4N2U3ZWNiZDQ0YTlk
YjQ4N2Y0MmJhZDQ4OTExYjk1MTNhMTMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gQVBJOjpJ
bnNwZWN0b3JFeHRlbnNpb25DbGllbnQKICAgICAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKICAgICAgICAgdm9p
ZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogCiAgICAg
ICAgIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlJiBtX2luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlOwpAQCAtNjcsNiArNjgsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB7CiAgICAgICAgIGJv
b2wgaW5zcGVjdG9yRXh0ZW5zaW9uRGlkU2hvd1RhYldpdGhJZGVudGlmaWVyIDogMTsKICAgICAg
ICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRIaWRlVGFiV2l0aElkZW50aWZpZXIgOiAxOwor
ICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZp
ZXIgOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZSA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggZGM2NzcwMGRkMTY3ZjVmYjQ0ZjJiY2Fh
OTcwZDcxZDBlZDVjYWY4ZC4uMTBjNzIzNGVlYjgwNDFhZDI2ZjNjOGIxZDEwYTUwYzUwMWE0NjQ5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAtNDEsNiAr
NDEsNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVs
ZWdhdGUoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICppbgogewogICAgIG1fZGVsZWdhdGVNZXRob2Rz
Lmluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmllciA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjpkaWRTaG93VGFi
V2l0aElkZW50aWZpZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRXh0ZW5z
aW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjop
XTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25EaWROYXZpZ2F0ZVRh
YldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
aW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXI6bmV3VVJMOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkluc3BlY3RlZFBhZ2VE
aWROYXZpZ2F0ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3Bl
Y3RvckV4dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6KV07CiAKICAgICBpbnNwZWN0
b3JFeHRlbnNpb24tPl9leHRlbnNpb24tPnNldENsaWVudChtYWtlVW5pcXVlUmVmPEluc3BlY3Rv
ckV4dGVuc2lvbkNsaWVudD4oKnRoaXMpKTsKQEAgLTg2LDYgKzg3LDE4IEBAIHZvaWQgSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6ZGlkSGlkZUV4
dGVuc2lvblRhYihjCiAgICAgW2RlbGVnYXRlIGluc3BlY3RvckV4dGVuc2lvbjptX2luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLm1faW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpLmdldCgpIGRpZEhp
ZGVUYWJXaXRoSWRlbnRpZmllcjpleHRlbnNpb25UYWJJRF07CiB9CiAKK3ZvaWQgSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6ZGlkTmF2aWdhdGVF
eHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFi
SUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkRpZE5hdmln
YXRlVGFiV2l0aElkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGRlbGVn
YXRlID0gbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRlOworICAgIGlmICgh
ZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JFeHRl
bnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2luc3BlY3RvckV4dGVuc2lvbi5n
ZXQoKS5nZXQoKSBkaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyOmV4dGVuc2lvblRhYklEIG5l
d1VSTDpuZXdVUkxdOworfQorCiB2b2lkIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlOjpJbnNw
ZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6
OlVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5t
X2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQYWdlRGlkTmF2aWdh
dGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNw
cAppbmRleCAxY2FmN2NiMDRiODAzNGM1NTBiZDNmOTY1YzVkNTAxMTA1MjNlNzQ0Li5lODg2NjA4
ZDE4NmY2NjNjNWU5ZGRlYWU0ZDgzM2IwYWNjNTg2NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTI2OCw2ICsyNjgsMjAgQEAg
dm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6ZGlkSGlkZUV4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3IKICAgICBleHRlbnNpb25DbGllbnQtPmRpZEhpZGVFeHRl
bnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCit7CisgICAgYXV0
byBpdCA9IG1fZXh0ZW5zaW9uQVBJT2JqZWN0TWFwLmZpbmQoZXh0ZW5zaW9uSUQpOworICAgIGlm
IChpdCA9PSBtX2V4dGVuc2lvbkFQSU9iamVjdE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVmUHRyPEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uPiBleHRlbnNpb24gPSBpdC0+dmFs
dWU7CisgICAgYXV0byBleHRlbnNpb25DbGllbnQgPSBleHRlbnNpb24tPmNsaWVudCgpOworICAg
IGlmICghZXh0ZW5zaW9uQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBleHRlbnNpb25D
bGllbnQtPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklELCBuZXdVUkwpOwor
fQorCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjppbnNwZWN0
ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgZm9yIChhdXRvJiBl
eHRlbnNpb24gOiBjb3B5VG9WZWN0b3IobV9leHRlbnNpb25BUElPYmplY3RNYXAudmFsdWVzKCkp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCmlu
ZGV4IGQxOTdjOWVhYzIwYjUyYzJkOTIzNWU2ZGEwNzdhOGQ2ZDZiYTBhN2YuLjU3MWFmNjI3NDk3
OGFiYjFhNWVmN2Y0YTMzOGYzYWM4NTJlMjNiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAg
ICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSBJUEMgbWVzc2FnZXMu
CiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAgdm9pZCBkaWRIaWRl
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNv
bnN0IFVSTCYpOwogCiAgICAgLy8gTm90aWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2
NDMzMTQzMjRkZDVkMmMxNWY4MzFjYjM3MjY2YWQ4NjFiN2I4YTM1Li40MmFhMzdmMGQ4ZjVjODY5
ODNhOThhYzk1MDM4MDRkMzkxNWQzMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3
IEBACiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSB7
CiAgICAgRGlkU2hvd0V4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBleHRl
bnNpb25UYWJJRCkKICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNpb25JRCwg
U3RyaW5nIGV4dGVuc2lvblRhYklEKQorICAgIERpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKFN0cmlu
ZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklELCBVUkwgbmV3VVJMKQogICAgIElu
c3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShVUkwgbmV3VVJMKQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
Y3BwCmluZGV4IGM4YWQzMTg2OTVkOWFjNWRkZGYyZjkxY2IyMjA1NmUxYzY2YjZkYmMuLjNjZWVh
ZDg1NDQyYWJmMDUzYTU5OTQwODJkODliZTc5NzJlMDg0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
Y3BwCkBAIC0zMDYsNiArMzA2LDE0IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEhp
ZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0CiAgICAgbV9l
eHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRl
bnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZE5hdmlnYXRl
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCwgY29uc3QgVVJM
JiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlkTmF2aWdhdGVFeHRlbnNpb25U
YWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwpOworfQorCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdV
UkwpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgK
aW5kZXggMzZjNzAxMTNjZjRiN2Y5MjliMTRhYWFjOWVkNDU3NDc2MWVkNTVkZS4uZDI5ODlhZGEz
MTU4ZDJlN2NiNDU1N2E4OWM0YWM4YTU5ZjIwYjM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApAQCAt
MTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzV2ViRXh0ZW5zaW9ucygp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6
OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYs
IGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmKSBvdmVycmlkZTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGZhN2NjZDk0OTc5NjA1MzJlMmMwNDk3MjM0NGQzZjMx
ZDc5M2I2MjcuLjhkNTRmMzU4MDBjNmZmMmFjNjE3ODRjZmE1NTQ4NmRkZWI3ZDgxMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUkuY3BwCkBAIC0zODAsNiArMzgwLDE0IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmRpZEhpZGVF
eHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nCiAgICAg
bV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBl
eHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OmRpZE5hdmlnYXRlRXh0
ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGNvbnN0IFN0cmluZyYgZXh0ZW5z
aW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIGlmICghbV9leHRlbnNpb25Db250
cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2V4dGVuc2lvbkNvbnRyb2xsZXItPmRp
ZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCwgbmV3VVJM
KTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSTo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNv
bnN0IFVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9leHRlbnNpb25Db250cm9sbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5o
CmluZGV4IGY2ZWQ3MDRjZmFkY2UwOTRlMDk1MThlNTZmOTk2MWFjYTE3ZTI0OGEuLjgzNmM4MDU4
MmQ4NzZlNDU1YjkwNGYwYzMwNWU1YjMyMDUxYzAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAgLTE1Niw2ICsxNTYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMoKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25J
RCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBp
bnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDcyMTZi
OTNkMzYzYzI0MjhhZTM3NzcwYTRlNTQ1M2NkOWY4M2NmYmQuLmJmMjEwOWNlOTM5ZGU2ZDdmZmYy
MzhlOWVkODBlNGJjNjc4N2MyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlci5jcHAKQEAgLTQ0MCw2ICs0NDAsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXI6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpF
eHQKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6
RGlkSGlkZUV4dGVuc2lvblRhYiB7IGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCB9LCBtX2lu
c3BlY3RvclBhZ2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBl
eHRlbnNpb25UYWJJRCwgY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OkRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFi
IHsgZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwgfSwgbV9pbnNwZWN0b3JQYWdl
SWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6Okluc3BlY3RlZFBh
Z2VEaWROYXZpZ2F0ZSB7IG5ld1VSTCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCmluZGV4IDRhNzk3ZTNmY2Q1
Yjg1N2MwZTcxZmYxODVlYmVmNjYwMWE3NjE2OWYuLmJkMDdhMTA0YTIzOTI1NDIyZWZlOWExNTQx
NzI2OGE3NDgxMzAxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuaApAQCAtNzYsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGJhY2tzIGZyb20gdGhl
IGZyb250ZW5kLgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6
OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOwogICAgIHZv
aWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29u
c3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOworICAgIHZvaWQgZGlkTmF2aWdhdGVFeHRl
bnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKTsKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZShjb25zdCBVUkwmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjQ1MzQ0MGVmNWZmNTJlODFlZmRmN2VkMjky
ZGE1MmMwOTdkNDdiLi5hNzYxZTY0NGM4NDAxOGY3MTZhOWQyMWVmNzljOGY3ZjczMzY3YWYyIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JF
eHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIg
bmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgZm9yIC1p
bnNwZWN0b3JFeHRlbnNpb246ZGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmllcjpuZXdVUkw6CisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUubW06CisgICAgICAgICgtW0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
Rm9yVGVzdGluZyBpbnNwZWN0b3JFeHRlbnNpb246ZGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmll
cjpuZXdVUkw6XSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0xMi0wMyAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lz
dGVtIGRhdGEgdmlhIFdLV2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLm1tCmluZGV4IDg3M2ExMGJhZWViZWIwZjA0ZWNjNzg3MGRhMmY5MGU1M2Q0
MTJjYjAuLjgxNGU4YmIzOGZmMWViOTY3Mjc2ZTliMzI5ODkyYTA5YWFhZmQ1NzAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KQEAgLTQzLDYgKzQzLDcgQEAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogc3RhdGljIFJldGFpblB0cjxOU1VSTD4gc2hhcmVk
TmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uOworc3RhdGljIGJvb2wgZXh0ZW5zaW9uVGFiRGlkTmF2aWdh
dGVXYXNDYWxsZWQ7CiAKIEBpbnRlcmZhY2UgVUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CiBAZW5kCkBAIC04NCw2
ICs4NSwxMSBAQCAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbgogICAgIGRpZEhpZGVFeHRlbnNpb25U
YWJXYXNDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZp
ZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllciBuZXdVUkw6KE5TVVJMICopbmV3VVJMCit7Cisg
ICAgZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0cnVlOworfQorCiAtICh2b2lk
KWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGlu
c3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZTooTlNVUkwgKiluZXdVUkwKIHsKICAgICBpbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0cnVlOwpAQCAtMjM0LDQgKzI0MCw5OCBAQCBURVNU
KFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUsIEluc3BlY3RlZFBhZ2VOYXZpZ2F0ZWRDYWxs
YmFja3MpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXND
YWxsZWQpOwogfQogCisvLyBGSVhNRTogUmUtZW5hYmxlIHRoaXMgdGVzdCBmb3IgZGVidWcgb25j
ZSB3ZWJraXQub3JnL2IvMjMxODQ3IGlzIGZpeGVkLgorI2lmICFkZWZpbmVkKE5ERUJVRykKK1RF
U1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgRElTQUJMRURfRXh0ZW5zaW9uVGFiTmF2
aWdhdGVkQ2FsbGJhY2tzKQorI2Vsc2UKK1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0
ZSwgRXh0ZW5zaW9uVGFiTmF2aWdhdGVkQ2FsbGJhY2tzKQorI2VuZGlmCit7CisgICAgcmVzZXRH
bG9iYWxTdGF0ZSgpOworCisgICAgLy8gSG9vayB1cCB0aGUgdGVzdC1yZXNvdXJjZTogaGFuZGxl
ciBzbyB0aGF0IHdlIGNhbiBuYXZpZ2F0ZSB0byBhIGRpZmZlcmVudCB0ZXN0IGZpbGUuCisgICAg
aWYgKCFzaGFyZWRVUkxTY2hlbWVIYW5kbGVyKQorICAgICAgICBzaGFyZWRVUkxTY2hlbWVIYW5k
bGVyID0gYWRvcHROUyhbW1Rlc3RJbnNwZWN0b3JVUkxTY2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0
XSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVm
ZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsKKyAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzaGFyZWRVUkxTY2hlbWVIYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAInRlc3QtcmVzb3VyY2UiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1VJRGVsZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUgbmV3XSk7CisKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVp
RGVsZWdhdGUuZ2V0KCldOworCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3ddOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQp
OworCisgICAgLy8gUmVnaXN0ZXIgdGhlIHRlc3QgZXh0ZW5zaW9uLgorICAgIGF1dG8gZXh0ZW5z
aW9uSUQgPSBbTlNVVUlEIFVVSURdLlVVSURTdHJpbmc7CisgICAgYXV0byBleHRlbnNpb25CdW5k
bGVJZGVudGlmaWVyID0gQCJjb20uYXBwbGUud2Via2l0LlRoaXJkRXh0ZW5zaW9uIjsKKyAgICBh
dXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1lID0gQCJUaGlyZEV4dGVuc2lvbiI7CisgICAgcGVuZGlu
Z0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHJl
Z2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZp
ZXI6ZXh0ZW5zaW9uQnVuZGxlSWRlbnRpZmllciBkaXNwbGF5TmFtZTpleHRlbnNpb25EaXNwbGF5
TmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yLCBfV0tJbnNwZWN0b3JFeHRl
bnNpb24gKmV4dGVuc2lvbikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAg
IEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb24pOworICAgICAgICBzaGFyZWRJbnNwZWN0b3JFeHRl
bnNpb24gPSBleHRlbnNpb247CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVuc2lvbkRlbGVnYXRlID0gYWRvcHROUyhb
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIG5ld10pOworICAgIFtzaGFyZWRJ
bnNwZWN0b3JFeHRlbnNpb24gc2V0RGVsZWdhdGU6ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgYXV0byBiYXNlVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBs
ZS5jb20vIl07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVz
dCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250
ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6YmFzZVVSTF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRl
V2FzQ2FsbGVkID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpbnNwZWN0
ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworICAgIEVYUEVDVF9OU19FUVVBTChzaGFyZWRO
ZXdVUkxBZnRlck5hdmlnYXRpb24uZ2V0KCkuYWJzb2x1dGVTdHJpbmcsIGJhc2VVUkwuYWJzb2x1
dGVTdHJpbmcpOworICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IGZhbHNl
OworCisgICAgLy8gQ3JlYXRlIGFuIGV4dGVuc2lvbiB0YWIuCisgICAgYXV0byBpY29uVVJMID0g
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291cmNlOi8vVGhpcmRFeHRlbnNpb24vSW5z
cGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5nIl07CisgICAgYXV0byBzb3VyY2VVUkwg
PSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9J
bnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwiXTsKKworICAgIHBlbmRpbmdDYWxsYmFj
a1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gY3JlYXRl
VGFiV2l0aE5hbWU6QCJUaGlyZEV4dGVuc2lvbi1UYWIiIHRhYkljb25VUkw6aWNvblVSTCBzb3Vy
Y2VVUkw6c291cmNlVVJMIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3IsIE5TU3Ry
aW5nICpleHRlbnNpb25UYWJJZGVudGlmaWVyKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVuc2lvblRhYklkZW50aWZpZXIpOworICAg
ICAgICBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmll
cjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
KworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtbd2ViVmlldyBf
aW5zcGVjdG9yXSBzaG93RXh0ZW5zaW9uVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9u
VGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBlcnJvcikg
eworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNr
V2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxs
ZWQgPSBmYWxzZTsKKyAgICBleHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IGZhbHNl
OworICAgIGF1dG8gbmV3VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291cmNl
Oi8vVGhpcmRFeHRlbnNpb24vSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCJdOwor
ICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gZXZhbHVhdGVTY3JpcHQ6W05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubG9jYXRpb24ucmVwbGFjZShcIiVAXCIpIiwgbmV3VVJM
XSBpblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvciwgaWQgcmVzdWx0KSB7CisgICAgICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0Nh
bGxiYWNrV2FzQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmV4dGVuc2lv
blRhYkRpZE5hdmlnYXRlV2FzQ2FsbGVkKTsKKworICAgIC8vIFVucmVnaXN0ZXIgdGhlIHRlc3Qg
ZXh0ZW5zaW9uLgorICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtb
d2ViVmlldyBfaW5zcGVjdG9yXSB1bnJlZ2lzdGVyRXh0ZW5zaW9uOnNoYXJlZEluc3BlY3RvckV4
dGVuc2lvbi5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgICAgIHBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworfQorCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUl9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446256</attachid>
            <date>2021-12-07 16:54:12 -0800</date>
            <delta_ts>2021-12-09 10:22:30 -0800</delta_ts>
            <desc>Patch v1.2</desc>
            <filename>bug-233935-20211207165412.patch</filename>
            <type>text/plain</type>
            <size>31684</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk5MjRmMDI1NjdjNDRj
M2M4MTQ3YTliZWZhNmZhZGI5NzZjZjg0ZS4uMTczOTFkZDUwNDk2YzQ4MTgyOWRlNTVlZDQ5ZmEw
ZGY5MGM0ODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8g
bm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8v
ODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyBJbnNwZWN0b3JGcm9udGVuZEhvc3QgaG9va3MgdG8gbm90aWZ5IHRoZSBjbGll
bnQgYWJvdXQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKwogMjAyMS0xMi0wMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGZXRjaCBhbmQgcmVtb3ZlIGZpbGUgc3lzdGVtIGRh
dGEgdmlhIFdLV2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMDU5
N2ExMTRmMmE4ZTkzNzU5M2YyZTlkZGZjMmE4ODliMjBkNGJhYS4uOWViNGZjMDk5MDU0NjBhZmU1
MDUwOWM5OTljY2I3YjY2ZDhmNzQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMjEtMTItMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JF
eHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIg
bmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIGNv
cnJlY3RseSwgd2UgY2Fubm90IHJlbHkgb24gdGhlIDxpZnJhbWUgc3JjPiBhdHRyaWJ1dGUKKyAg
ICAgICAgdG8gdGVsbCB3aGF0IHRoZSBwYWdlIHRoZSBpZnJhbWUgaGFzIGxvYWRlZC4gVXNlIGEg
aGVscGVyIG1ldGhvZCB0byBxdWVyeSB0aGUgaWZyYW1lIGxvY2F0aW9uIGluZGlyZWN0bHkuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1dlYkluc3BlY3RvckV4dGVuc2lvblRhYkNv
bnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcpOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcu
cHJvdG90eXBlLl9leHRlbnNpb25GcmFtZURpZExvYWQpOgorICAgICAgICBBZnRlciB0aGUgaWZy
YW1lJ3MgaW5pdGlhbCBsb2FkLCBzdGFydCBhIGxvYWQgZm9yIHNvdXJjZVVSTCBpbnNpZGUgdGhl
IGlmcmFtZSBjb250ZXh0LgorCisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuYXN5bmMgX21heWJlRGlzcGF0Y2hEaWROYXZpZ2F0ZUV4dGVu
c2lvblRhYik6CisgICAgICAgIERpc3BhdGNoIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiIHdpdGgg
dGhlIG5ldyBVUkwgd2hlbiB0aGUgZXh0ZW5zaW9uIHRhYiBpZnJhbWUgY29tcGxldGVzIGEgbG9h
ZC4KKyAgICAgICAgRG9uJ3Qgbm90aWZ5IHRoZSBjbGllbnQgaWYgdGhlIGV4dGVuc2lvbiB0YWIg
aGFzIG5vdCB5ZXQgbG9hZGVkLgorCiAyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IGAqdmlgIChpbmxp
bmUpIGFuZCBgKnZiYCAoYmxvY2spIHZpZXdwb3J0IHVuaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmMWQ0ZjQw
NTZhYzEwOTI5YjE0ZGVjMDk1NjY2NzI0ZDQxMTgxZGUuLjAxNWU1MjMwZDkyMTRiYzA1Zjk1ODI1
YTU3OTQ0NWUyZmE5ZWMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMTItMDcg
IEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVj
dG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBi
ZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJk
YXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgcGx1bWJpbmcgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiBhbiBleHRlbnNpb24g
dGFiIGxvYWRzLiBUaGlzIGlzIGltcGxlbWVudGVkIHNpbWlsYXJseSB0bworICAgICAgICAtaW5z
cGVjdG9yRXh0ZW5zaW9uOmRpZFNob3dFeHRlbnNpb25UYWI6IGFuZCAtaW5zcGVjdG9yRXh0ZW5z
aW9uOmRpZEhpZGVFeHRlbnNpb25UYWI6LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElJ
bnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5z
aW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVu
c2lvblRhYik6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYik6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclVJOjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaDoKKwogMjAyMS0xMi0wMyAgUm9iZXJ0IEplbm5l
ciAgPEplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
ODY0ODcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oCmluZGV4IDI2Nzg4M2Q5OTI1MWUyZWI1ZWViNDkyMGM2YzAwNjA2NjViNmM5Mzcu
LmFhMzIyNjUxNmU4ZmY1NjQ2OWY4OTJhYzgzM2ExZWY1ZWZlYTZiM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0xMjIs
NiArMTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lv
bnMoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9u
VGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvblRhYklEJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29u
c3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFi
SUQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQm
LCBjb25zdCBVUkwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlKGNvbnN0IFVSTCYpIHsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMjE4ZGY2YTE5MTEyOTQ4MTUz
YTFkYmY0OTVlZjU1ZWEwZjFlNmY3ZS4uOGFhZGFkMWZiYWVlMzg3ZTg5NzBhNjVmMWYyOTdlZjll
ZDJhZjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHAKQEAgLTcwNyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVu
ZEhvc3Q6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29u
c3QKICAgICBtX2NsaWVudC0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5z
aW9uVGFiSUQpOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVF
eHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRl
bnNpb25UYWJJRCwgY29uc3QgU3RyaW5nJiBuZXdVUkxTdHJpbmcpCit7CisgICAgaWYgKCFtX2Ns
aWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4
dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQsIHsgVVJMKCksIG5ld1VSTFN0
cmluZyB9KTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VE
aWROYXZpZ2F0ZShjb25zdCBTdHJpbmcmIG5ld1VSTFN0cmluZykKIHsKICAgICBpZiAoIW1fY2xp
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5oCmluZGV4IDdiM2JhYWQ3MWYwZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNkMWFiYWUuLjJmN2Uw
NzM0YzNhYjJjM2FkYWY2YTczMDAwN2E4M2M3MDU3MGJiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlk
U2hvd0V4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcm
IGV4dGVuc2lvblRhYklEKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3Ry
aW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9p
ZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25z
dCBTdHJpbmcmIGV4dGVuc2lvblRhYklELCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBp
bnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlv
bk9yPEpTQzo6SlNWYWx1ZT4gZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1l
RWxlbWVudCYgZXh0ZW5zaW9uRnJhbWUsIGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmlkbAppbmRleCA1MGUxNGRkYzBmYjAyMDhlYWVjYzM2ZWRhOWY0NjE0NjA1MWU4YTZlLi45
ZmFmNzU3MTJjNTQyNDY4NGRhYjFlYjUwYzk2N2U1YWJjOGVjYTAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYg
KzEwMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRl
bnNpb25zOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVk
IGRpZFNob3dFeHRlbnNpb25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0
ZW5zaW9uVGFiSUQpOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5k
ZWZpbmVkIGRpZEhpZGVFeHRlbnNpb25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJp
bmcgZXh0ZW5zaW9uVGFiSUQpOworICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9O
U10gdW5kZWZpbmVkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKERPTVN0cmluZyBleHRlbnNpb25J
RCwgRE9NU3RyaW5nIGV4dGVuc2lvblRhYklELCBET01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29u
ZGl0aW9uYWw9SU5TUEVDVE9SX0VYVEVOU0lPTlNdIHVuZGVmaW5lZCBpbnNwZWN0ZWRQYWdlRGlk
TmF2aWdhdGUoRE9NU3RyaW5nIG5ld1VSTCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9F
WFRFTlNJT05TXSBhbnkgZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxl
bWVudCBleHRlbnNpb25GcmFtZSwgRE9NU3RyaW5nIHNjcmlwdFNvdXJjZSk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5zcGVj
dG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcwpp
bmRleCAxYjNhOTg0MGM2Y2Y1NGJlY2ZiNDMwYjZkNjM4MWNiZDNhOGExMDhmLi5iM2RkYmRkYTAz
Njk0NjVmYjc4ZDZiYzJlZThiMDA4YmJjMDdjMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250
ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcwpAQCAtMzksMTIgKzM5LDEw
IEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpCiAgICAgICAgIHRoaXMuX2V4dGVuc2lvblRhYklE
ID0gZXh0ZW5zaW9uVGFiSUQ7CiAgICAgICAgIHRoaXMuX3RhYkluZm8gPSB0YWJJbmZvOwogICAg
ICAgICB0aGlzLl9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgICAgIHRoaXMuX2lmcmFtZUZp
bmlzaGVkSW5pdGlhbExvYWQgPSBmYWxzZTsKIAogICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50
ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpKTsKICAgICAgICAgdGhpcy5faWZyYW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgdGhpcy5fZXh0ZW5zaW9uRnJhbWVEaWRMb2FkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlz
Ll9pZnJhbWVFbGVtZW50LnNyYyA9IHRoaXMuX3NvdXJjZVVSTDsKLQotICAgICAgICB0aGlzLl9m
cmFtZUNvbnRlbnREaWRMb2FkID0gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC0x
MDksMTMgKzEwNywzMCBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmlldyA9
IGNsYXNzIFdlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaQogCiAgICAgX2V4dGVuc2lv
bkZyYW1lRGlkTG9hZCgpCiAgICAgewotICAgICAgICB0aGlzLl9mcmFtZUNvbnRlbnREaWRMb2Fk
ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fbWF5YmVEaXNwYXRjaERpZFNob3dFeHRlbnNpb25UYWIo
KTsKKyAgICAgICAgaWYgKCF0aGlzLl9pZnJhbWVGaW5pc2hlZEluaXRpYWxMb2FkKSB7CisgICAg
ICAgICAgICB0aGlzLl9pZnJhbWVGaW5pc2hlZEluaXRpYWxMb2FkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIodGhpcy5fZXh0ZW5zaW9uVGFiSUQsIGBkb2N1bWVudC5sb2NhdGlvbi5yZXBsYWNl
KCIke3RoaXMuX3NvdXJjZVVSTH0iKTtgKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHRoaXMuX21heWJlRGlzcGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYigp
OworICAgIH0KKworICAgIGFzeW5jIF9tYXliZURpc3BhdGNoRGlkTmF2aWdhdGVFeHRlbnNpb25U
YWIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IHBheWxvYWQgPSBhd2FpdCBXSS5zaGFyZWRB
cHAuZXh0ZW5zaW9uQ29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKHRoaXMu
X2V4dGVuc2lvblRhYklELCAiZG9jdW1lbnQubG9jYXRpb24uaHJlZiIpOworICAgICAgICBjb25z
b2xlLmFzc2VydChwYXlsb2FkLnJlc3VsdCwgIlNob3VsZCBiZSBhYmxlIHRvIHVud3JhcCBldmFs
dWF0aW9uIGluIGV4dGVuc2lvbiB0YWIhIik7CisKKyAgICAgICAgaWYgKEluc3BlY3RvckZyb250
ZW5kSG9zdC5zdXBwb3J0c1dlYkV4dGVuc2lvbnMpCisgICAgICAgICAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QuZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIodGhpcy5fZXh0ZW5zaW9uLmV4dGVuc2lv
bklELCB0aGlzLl9leHRlbnNpb25UYWJJRCwgcGF5bG9hZC5yZXN1bHQpOwogICAgIH0KIAogICAg
IF9tYXliZURpc3BhdGNoRGlkU2hvd0V4dGVuc2lvblRhYigpCiAgICAgewotICAgICAgICBpZiAo
IXRoaXMuX2ZyYW1lQ29udGVudERpZExvYWQgfHwgIXRoaXMuZWxlbWVudC5pc0Nvbm5lY3RlZCkK
KyAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgaWYgKEluc3BlY3RvckZyb250ZW5kSG9zdC5zdXBwb3J0c1dlYkV4dGVu
c2lvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5z
cGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmgKaW5kZXggM2FmODNiODJhMTMxOWI0NWRkYTZkOTYxZjVh
NTg2ODBmNGRiNjM1Mi4uM2E1MTY1NmM2ZDhmYmRkZTk5OTVmNTc3ODA3MDRkOTUzNjJiZjRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVu
c2lvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb25DbGllbnQuaApAQCAtMzcsNiArMzcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRh
YklEJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWROYXZpZ2F0
ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgV1RG
OjpVUkwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNv
bnN0IFdURjo6VVJMJikgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5o
CmluZGV4IDUwY2JkYWU3MzFlZTg3YTVlZmE2ZDg3Yjc5OGM0ZTI0NTk3YTNiZDMuLjEzYmM3NTJh
MWFkZGUyNDFjZTUxZTU2ZWM1MGZlOWQ0MzBhMDViMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5oCkBAIC01Miw4ICs1MiwxNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
ICovCiAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICop
ZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlm
aWVyOwogCisvKioKKyAqIEBhYnN0cmFjdCBDYWxsZWQgd2hlbiBhIHRhYiBhc3NvY2lhdGVkIHdp
dGggdGhpcyBleHRlbnNpb24gaGFzIG5hdmlnYXRlZCB0byBhIG5ldyBVUkwuCisgKiBAcGFyYW0g
ZXh0ZW5zaW9uIFRoZSBleHRlbnNpb24gdGhhdCBjcmVhdGVkIHRoZSB0YWIuCisgKiBAcGFyYW0g
dGFiSWRlbnRpZmllciBJZGVudGlmaWVyIGZvciB0aGUgdGFiIHRoYXQgbmF2aWdhdGVkLgorICog
QHBhcmFtIFVSTCBUaGUgbmV3IFVSTCBmb3IgdGhlIGV4dGVuc2lvbiB0YWIncyBwYWdlLgorICov
CistICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0
ZW5zaW9uIGRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRp
ZmllciBuZXdVUkw6KE5TVVJMICopbmV3VVJMOworCiAvKioKICAqIEBhYnN0cmFjdCBDYWxsZWQg
d2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgaGFzIG5hdmlnYXRlZCB0byBhIG5ldyBVUkwuCisgKiBA
cGFyYW0gZXh0ZW5zaW9uIFRoZSBleHRlbnNpb24gdGhhdCBpcyBiZWluZyBub3RpZmllZC4KICAq
IEBwYXJhbSB1cmwgVGhlIG5ldyBVUkwgZm9yIHRoZSBpbnNwZWN0ZWQgcGFnZS4KICAqLwogLSAo
dm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lv
biBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6KE5TVVJMICopdXJsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAppbmRleCAyN2RlODBlZjBlMzU1NWZhYjk4OTRhMTMyMWFh
MWY1YTE2Y2JkYWZhLi43NTg3ZTdlY2JkNDRhOWRiNDg3ZjQyYmFkNDg5MTFiOTUxM2ExMzE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaApAQCAtNTYsNiArNTYsNyBA
QCBwcml2YXRlOgogICAgICAgICAvLyBBUEk6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudAogICAg
ICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZE5h
dmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25z
dCBVUkwmKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUo
Y29uc3QgVVJMJikgb3ZlcnJpZGU7CiAKICAgICAgICAgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUmIG1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU7CkBAIC02Nyw2ICs2OCw3IEBAIHByaXZh
dGU6CiAgICAgc3RydWN0IHsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRTaG93
VGFiV2l0aElkZW50aWZpZXIgOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRp
ZEhpZGVUYWJXaXRoSWRlbnRpZmllciA6IDE7CisgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5z
aW9uRGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmllciA6IDE7CiAgICAgICAgIGJvb2wgaW5zcGVj
dG9yRXh0ZW5zaW9uSW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlIDogMTsKICAgICB9IG1fZGVsZWdh
dGVNZXRob2RzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpp
bmRleCBkYzY3NzAwZGQxNjdmNWZiNDRmMmJjYWE5NzBkNzFkMGVkNWNhZjhkLi4xMGM3MjM0ZWVi
ODA0MWFkMjZmM2M4YjFkMTBhNTBjNTAxYTQ2NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4
dGVuc2lvbkRlbGVnYXRlLm1tCkBAIC00MSw2ICs0MSw3IEBAIEluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZShfV0tJbnNwZWN0b3JFeHRlbnNpb24g
KmluCiB7CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRXh0ZW5zaW9uRGlkU2hvd1Rh
YldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
aW5zcGVjdG9yRXh0ZW5zaW9uOmRpZFNob3dUYWJXaXRoSWRlbnRpZmllcjopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25EaWRIaWRlVGFiV2l0aElkZW50aWZpZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JFeHRlbnNp
b246ZGlkSGlkZVRhYldpdGhJZGVudGlmaWVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLmlu
c3BlY3RvckV4dGVuc2lvbkRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JFeHRlbnNpb246ZGlkTmF2aWdh
dGVUYWJXaXRoSWRlbnRpZmllcjpuZXdVUkw6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5z
cGVjdG9yRXh0ZW5zaW9uSW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmluc3BlY3RlZFBhZ2VE
aWROYXZpZ2F0ZTopXTsKIAogICAgIGluc3BlY3RvckV4dGVuc2lvbi0+X2V4dGVuc2lvbi0+c2V0
Q2xpZW50KG1ha2VVbmlxdWVSZWY8SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50PigqdGhpcykpOwpA
QCAtODYsNiArODcsMTggQEAgdm9pZCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVj
dG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWRIaWRlRXh0ZW5zaW9uVGFiKGMKICAgICBbZGVsZWdhdGUg
aW5zcGVjdG9yRXh0ZW5zaW9uOm1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9pbnNwZWN0
b3JFeHRlbnNpb24uZ2V0KCkuZ2V0KCkgZGlkSGlkZVRhYldpdGhJZGVudGlmaWVyOmV4dGVuc2lv
blRhYklEXTsKIH0KIAordm9pZCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9y
RXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6
OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCwgY29uc3QgV1RGOjpVUkwmIG5ld1VSTCkK
K3sKKyAgICBpZiAoIW1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhv
ZHMuaW5zcGVjdG9yRXh0ZW5zaW9uRGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1fZGVsZWdhdGU7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgW2RlbGVnYXRlIGluc3BlY3RvckV4dGVuc2lvbjptX2luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1faW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpLmdldCgpIGRpZE5hdmlnYXRlVGFiV2l0
aElkZW50aWZpZXI6ZXh0ZW5zaW9uVGFiSUQgbmV3VVJMOm5ld1VSTF07Cit9CisKIHZvaWQgSW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6aW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCiB7CiAgICAgaWYgKCFt
X2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4
dGVuc2lvbkluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDFjYWY3Y2IwNGI4MDM0YzU1MGJk
M2Y5NjVjNWQ1MDExMDUyM2U3NDQuLmU4ODY2MDhkMTg2ZjY2M2M1ZTlkZGVhZTRkODMzYjBhY2M1
ODY2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclBy
b3h5LmNwcApAQCAtMjY4LDYgKzI2OCwyMCBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5OjpkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3RvcgogICAg
IGV4dGVuc2lvbkNsaWVudC0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCk7CiB9
CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OmRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklE
LCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCwgY29uc3Qg
V1RGOjpVUkwmIG5ld1VSTCkKK3sKKyAgICBhdXRvIGl0ID0gbV9leHRlbnNpb25BUElPYmplY3RN
YXAuZmluZChleHRlbnNpb25JRCk7CisgICAgaWYgKGl0ID09IG1fZXh0ZW5zaW9uQVBJT2JqZWN0
TWFwLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8QVBJOjpJbnNwZWN0b3JF
eHRlbnNpb24+IGV4dGVuc2lvbiA9IGl0LT52YWx1ZTsKKyAgICBhdXRvIGV4dGVuc2lvbkNsaWVu
dCA9IGV4dGVuc2lvbi0+Y2xpZW50KCk7CisgICAgaWYgKCFleHRlbnNpb25DbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIGV4dGVuc2lvbkNsaWVudC0+ZGlkTmF2aWdhdGVFeHRlbnNpb25U
YWIoZXh0ZW5zaW9uVGFiSUQsIG5ld1VSTCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwm
IG5ld1VSTCkKIHsKICAgICBmb3IgKGF1dG8mIGV4dGVuc2lvbiA6IGNvcHlUb1ZlY3RvcihtX2V4
dGVuc2lvbkFQSU9iamVjdE1hcC52YWx1ZXMoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgKaW5kZXggZDE5N2M5ZWFjMjBiNTJjMmQ5MjM1ZTZk
YTA3N2E4ZDZkNmJhMGE3Zi4uNTcxYWY2Mjc0OTc4YWJiMWE1ZWY3ZjRhMzM4ZjNhYzg1MmUyM2Iz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgK
QEAgLTY4LDYgKzY4LDcgQEAgcHVibGljOgogICAgIC8vIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5IElQQyBtZXNzYWdlcy4KICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25U
YWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uVGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKKyAgICB2
b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQm
LCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJik7CiAgICAgdm9p
ZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJik7CiAKICAgICAvLyBOb3RpZmlj
YXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDY0MzMxNDMyNGRkNWQyYzE1ZjgzMWNiMzcyNjZh
ZDg2MWI3YjhhMzUuLjQyYWEzN2YwZDhmNWM4Njk4M2E5OGFjOTUwMzgwNGQzOTE1ZDMyZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5IHsKICAgICBEaWRTaG93RXh0ZW5zaW9uVGFiKFN0
cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklEKQogICAgIERpZEhpZGVFeHRl
bnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvbklELCBTdHJpbmcgZXh0ZW5zaW9uVGFiSUQpCisgICAg
RGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvbklELCBTdHJpbmcgZXh0ZW5z
aW9uVGFiSUQsIFVSTCBuZXdVUkwpCiAgICAgSW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKFVSTCBu
ZXdVUkwpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggYzhhZDMxODY5NWQ5YWM1ZGRk
ZjJmOTFjYjIyMDU2ZTFjNjZiNmRiYy4uM2NlZWFkODU0NDJhYmYwNTNhNTk5NDA4MmQ4OWJlNzk3
MmUwODRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9S
ZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTMwNiw2ICszMDYsMTQgQEAgdm9p
ZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiBleHQKICAgICBtX2V4dGVuc2lvbkNvbnRyb2xsZXItPmRpZEhpZGVF
eHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklEKTsKIH0KIAordm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFi
SUQmIGV4dGVuc2lvblRhYklELCBjb25zdCBVUkwmIG5ld1VSTCkKK3sKKyAgICBpZiAoIW1fZXh0
ZW5zaW9uQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9leHRlbnNpb25Db250
cm9sbGVyLT5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFi
SUQsIG5ld1VSTCk7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFBh
Z2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmIG5ld1VSTCkKIHsKICAgICBpZiAoIW1fZXh0ZW5zaW9u
Q29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAppbmRleCAzNmM3MDExM2NmNGI3ZjkyOWIxNGFh
YWM5ZWQ0NTc0NzYxZWQ1NWRlLi5kMjk4OWFkYTMxNThkMmU3Y2I0NTU3YTg5YzRhYzhhNTlmMjBi
MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHVibGljOgogICAg
IGJvb2wgc3VwcG9ydHNXZWJFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9u
VGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvblRhYklEJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYsIGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZmE3
Y2NkOTQ5Nzk2MDUzMmUyYzA0OTcyMzQ0ZDNmMzFkNzkzYjYyNy4uOGQ1NGYzNTgwMGM2ZmYyYWM2
MTc4NGNmYTU1NDg2ZGRlYjdkODEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTM4MCw2ICszODAsMTQgQEAg
dm9pZCBXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbklELCBjb25zdCBTdHJpbmcKICAgICBtX2V4dGVuc2lvbkNvbnRyb2xsZXItPmRpZEhp
ZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklEKTsKIH0KIAordm9pZCBX
ZWJJbnNwZWN0b3JVSTo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRl
bnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCwgY29uc3QgVVJMJiBuZXdVUkwp
Cit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoZXh0ZW5z
aW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJ
OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgaWYg
KCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggZjZlZDcwNGNmYWRjZTA5NGUwOTUx
OGU1NmY5OTYxYWNhMTdlMjQ4YS4uODM2YzgwNTgyZDg3NmU0NTViOTA0ZjBjMzA1ZTViMzIwNTFj
MDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuaApAQCAtMTU2LDYgKzE1Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBv
cnRzV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25z
dCBVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25z
dCBVUkwmKSBvdmVycmlkZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlci5jcHAKaW5kZXggNzIxNmI5M2QzNjNjMjQyOGFlMzc3NzBhNGU1NDUzY2Q5
ZjgzY2ZiZC4uYmYyMTA5Y2U5MzlkZTZkN2ZmZjIzOGU5ZWQ4MGU0YmM2Nzg3YzJiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtNDQwLDYgKzQ0
MCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkSGlkZUV4
dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpEaWRIaWRlRXh0ZW5zaW9uVGFiIHsgZXh0ZW5z
aW9uSUQsIGV4dGVuc2lvblRhYklEIH0sIG1faW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOwogfQog
Cit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkTmF2aWdhdGVFeHRl
bnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmIGV4dGVuc2lvblRhYklELCBjb25zdCBVUkwmIG5l
d1VSTCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eTo6RGlkTmF2aWdhdGVFeHRlbnNpb25UYWIgeyBleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFi
SUQsIG5ld1VSTCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShj
b25zdCBVUkwmIG5ld1VSTCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eTo6SW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlIHsgbmV3VVJMIH0sIG1f
aW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmgKaW5kZXggNGE3OTdlM2ZjZDViODU3YzBlNzFmZjE4NWViZWY2NjAxYTc2MTY5
Zi4uYmQwN2ExMDRhMjM5MjU0MjJlZmU5YTE1NDE3MjY4YTc0ODEzMDE5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCkBAIC03Niw2ICs3Niw3IEBAIHB1Ymxp
YzoKICAgICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgZnJvbnRlbmQuCiAgICAgdm9pZCBkaWRTaG93
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
Jik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFVSTCYp
OwogICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGVmNDUzNDQwZWY1ZmY1MmU4MWVmZGY3ZWQyOTJkYTUyYzA5N2Q0N2IuLmE3NjFlNjQ0Yzg0MDE4
ZjcxNmE5ZDIxZWY3OWM4ZjdmNzMzNjdhZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0wNyAgQkogQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHBy
b3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIHRvIG5v
dGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9uIHRhYiBuYXZpZ2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkzNQorICAgICAgICA8cmRhcjovLzg2
MTIzODk5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBBUEkgdGVzdCBjb3ZlcmFnZSBmb3IgLWluc3BlY3RvckV4dGVuc2lvbjpkaWROYXZpZ2F0
ZVRhYldpdGhJZGVudGlmaWVyOm5ld1VSTDoKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAg
KC1bSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIGluc3BlY3RvckV4dGVuc2lv
bjpkaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyOm5ld1VSTDpdKToKKyAgICAgICAgKFRFU1Qp
OgorCiAyMDIxLTEyLTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZldGNoIGFuZCByZW1vdmUgZmlsZSBzeXN0ZW0gZGF0YSB2aWEgV0tXZWJzaXRlRGF0YVN0
b3JlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggODczYTEw
YmFlZWJlYjBmMDRlY2M3ODcwZGEyZjkwZTUzZDQxMmNiMC4uODE0ZThiYjM4ZmYxZWI5NjcyNzZl
OWIzMjk4OTJhMDlhYWFmZDU3MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZS5tbQpAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBz
dGF0aWMgUmV0YWluUHRyPE5TVVJMPiBzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb247CitzdGF0
aWMgYm9vbCBleHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdhc0NhbGxlZDsKIAogQGludGVyZmFjZSBV
SURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIDogTlNPYmplY3Qg
PFdLVUlEZWxlZ2F0ZT4KIEBlbmQKQEAgLTg0LDYgKzg1LDExIEBAIC0gKHZvaWQpaW5zcGVjdG9y
RXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkSGlkZVRhYldp
dGhJZGVuCiAgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IHRydWU7CiB9CiAKKy0g
KHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNp
b24gZGlkTmF2aWdhdGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVy
IG5ld1VSTDooTlNVUkwgKiluZXdVUkwKK3sKKyAgICBleHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdh
c0NhbGxlZCA9IHRydWU7Cit9CisKIC0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNw
ZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOihOU1VS
TCAqKW5ld1VSTAogewogICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IHRy
dWU7CkBAIC0yMzQsNCArMjQwLDk4IEBAIFRFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0
ZSwgSW5zcGVjdGVkUGFnZU5hdmlnYXRlZENhbGxiYWNrcykKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CiB9CiAKKy8vIEZJWE1FOiBSZS1l
bmFibGUgdGhpcyB0ZXN0IGZvciBkZWJ1ZyBvbmNlIHdlYmtpdC5vcmcvYi8yMzE4NDcgaXMgZml4
ZWQuCisjaWYgIWRlZmluZWQoTkRFQlVHKQorVEVTVChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlLCBESVNBQkxFRF9FeHRlbnNpb25UYWJOYXZpZ2F0ZWRDYWxsYmFja3MpCisjZWxzZQorVEVT
VChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBFeHRlbnNpb25UYWJOYXZpZ2F0ZWRDYWxs
YmFja3MpCisjZW5kaWYKK3sKKyAgICByZXNldEdsb2JhbFN0YXRlKCk7CisKKyAgICAvLyBIb29r
IHVwIHRoZSB0ZXN0LXJlc291cmNlOiBoYW5kbGVyIHNvIHRoYXQgd2UgY2FuIG5hdmlnYXRlIHRv
IGEgZGlmZmVyZW50IHRlc3QgZmlsZS4KKyAgICBpZiAoIXNoYXJlZFVSTFNjaGVtZUhhbmRsZXIp
CisgICAgICAgIHNoYXJlZFVSTFNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdEluc3BlY3Rv
clVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIHdl
YlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFi
bGVkID0gWUVTOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OnNoYXJlZFVSTFNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAidGVzdC1yZXNvdXJj
ZSJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZp
ZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhb
VUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSBuZXddKTsKKwor
ICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbW3dl
YlZpZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
aWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICAvLyBSZWdpc3RlciB0aGUgdGVz
dCBleHRlbnNpb24uCisgICAgYXV0byBleHRlbnNpb25JRCA9IFtOU1VVSUQgVVVJRF0uVVVJRFN0
cmluZzsKKyAgICBhdXRvIGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZpZXIgPSBAImNvbS5hcHBsZS53
ZWJraXQuVGhpcmRFeHRlbnNpb24iOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBA
IlRoaXJkRXh0ZW5zaW9uIjsKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsK
KyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5z
aW9uSUQgZXh0ZW5zaW9uQnVuZGxlSWRlbnRpZmllcjpleHRlbnNpb25CdW5kbGVJZGVudGlmaWVy
IGRpc3BsYXlOYW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNF
cnJvciAqZXJyb3IsIF9XS0luc3BlY3RvckV4dGVuc2lvbiAqZXh0ZW5zaW9uKSB7CisgICAgICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVuc2lvbik7
CisgICAgICAgIHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lvbjsKKworICAgICAg
ICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIGF1dG8g
ZXh0ZW5zaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZv
clRlc3RpbmcgbmV3XSk7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBzZXREZWxlZ2F0
ZTpleHRlbnNpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBhdXRvIGJhc2VVUkwgPSBbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXTsKKyAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRs
ZT48L2hlYWQ+PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpiYXNl
VVJMXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisK
KyAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCk7
CisgICAgRVhQRUNUX05TX0VRVUFMKHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbi5nZXQoKS5h
YnNvbHV0ZVN0cmluZywgYmFzZVVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAgaW5zcGVjdGVkUGFn
ZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisKKyAgICAvLyBDcmVhdGUgYW4gZXh0ZW5z
aW9uIHRhYi4KKyAgICBhdXRvIGljb25VUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Qt
cmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgz
MC5wbmciXTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVz
dC1yZXNvdXJjZTovL1RoaXJkRXh0ZW5zaW9uL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIu
aHRtbCJdOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3No
YXJlZEluc3BlY3RvckV4dGVuc2lvbiBjcmVhdGVUYWJXaXRoTmFtZTpAIlRoaXJkRXh0ZW5zaW9u
LVRhYiIgdGFiSWNvblVSTDppY29uVVJMIHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICplcnJvciwgTlNTdHJpbmcgKmV4dGVuc2lvblRhYklkZW50aWZpZXIp
IHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwo
ZXh0ZW5zaW9uVGFiSWRlbnRpZmllcik7CisgICAgICAgIHNoYXJlZEV4dGVuc2lvblRhYklkZW50
aWZpZXIgPSBleHRlbnNpb25UYWJJZGVudGlmaWVyOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFj
a1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3dFeHRlbnNpb25UYWJX
aXRoSWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyLmdldCgpIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNFcnJvciAqIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
KworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIGV4dGVuc2lvblRh
YkRpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBuZXdVUkwgPSBbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JF
eHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIl07CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lv
biBldmFsdWF0ZVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5sb2Nh
dGlvbi5yZXBsYWNlKFwiJUBcIikiLCBuZXdVUkxdIGluVGFiV2l0aElkZW50aWZpZXI6c2hhcmVk
RXh0ZW5zaW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3Ig
KmVycm9yLCBpZCByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAg
ICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQpOwor
CisgICAgLy8gVW5yZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxi
YWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0
ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChl
cnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxl
ZCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446562</attachid>
            <date>2021-12-09 10:22:32 -0800</date>
            <delta_ts>2021-12-09 12:12:21 -0800</delta_ts>
            <desc>Patch v1.3</desc>
            <filename>bug-233935-20211209102231.patch</filename>
            <type>text/plain</type>
            <size>40909</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YmYyYjlmMWNjMDhk
MjBhODg1Nzc3ODZiODMxNTg5MWI4MGI2Ni4uNjhhMTg2ZDUxN2ZlNzM2YzM4YTU5YjUxMjljZjVk
NzNiNTViMzBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA4ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8g
bm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8v
ODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIG5ldyBJbnNwZWN0b3JGcm9udGVuZEhvc3QgaG9va3MgdG8gbm90aWZ5IHRoZSBjbGll
bnQgYWJvdXQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKwogMjAyMS0xMi0wOCAgTWVnYW4gR2FyZG5lciAgPG1l
Z2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3cgY29ycmVjdCBjb250ZW50IG1l
bnUgZm9yIGltYWdlcyBzZXJ2aWNlcyBjaGV2cm9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggNGEyOWE3N2MwMjI3ZjNhOWZjNTc4MGRlODc3MjFjNDY4MzUxZTY1ZC4uOGVhNWZlYjk4YzVh
NmU2YWUyZjE3OWJlMGE0ZDcwMTk2ZWZmNjZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNw
ZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lv
biB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBvcmRlciBmb3IgdGhpcyB0byB3
b3JrIGNvcnJlY3RseSwgd2UgY2Fubm90IHJlbHkgb24gdGhlIDxpZnJhbWUgc3JjPiBhdHRyaWJ1
dGUKKyAgICAgICAgdG8gdGVsbCB3aGF0IHRoZSBwYWdlIHRoZSBpZnJhbWUgaGFzIGxvYWRlZC4g
VXNlIGEgaGVscGVyIG1ldGhvZCB0byBxdWVyeSB0aGUgaWZyYW1lIGxvY2F0aW9uIGluZGlyZWN0
bHkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5k
QVBJLmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0
b3JFeHRlbnNpb25Db250cm9sbGVyLmpzOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5z
aW9uQ29udHJvbGxlci5wcm90b3R5cGUuY3JlYXRlVGFiRm9yRXh0ZW5zaW9uKToKKyAgICAgICAg
KFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLnNob3dFeHRlbnNp
b25UYWIpOgorICAgICAgICBTdGFuZGFyZGl6ZSBvbiByZXR1cm5pbmcgeyJyZXN1bHQiOiB2YWx1
ZX0gZnJvbSB0aGVzZSBtZXRob2RzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9X
ZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLldlYklu
c3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLldlYkluc3BlY3Rv
ckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS53aGVuUGFnZUF2YWlsYWJsZSk6IEFk
ZGVkLgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcucHJv
dG90eXBlLl9leHRlbnNpb25GcmFtZURpZExvYWQpOgorICAgICAgICBUcmlnZ2VyIGEgbG9hZCBv
ZiB0aGUgYWN0dWFsIHJlcXVlc3RlZCBwYWdlIGJ5IGV2YWx1YXRpbmcgYGRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSA8dXJsPmAKKyAgICAgICAgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGV4dGVuc2lv
biB0YWIgaWZyYW1lLiBOb3RpZnkgY2xpZW50cyB3aGVuIHRoaXMgbm9uLWluaXRpYWwgbG9hZCBj
b21wbGV0ZXMuCisKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRW
aWV3LnByb3RvdHlwZS5hc3luYyBfbWF5YmVEaXNwYXRjaERpZE5hdmlnYXRlRXh0ZW5zaW9uVGFi
KToKKyAgICAgICAgRGlzcGF0Y2ggZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIgd2l0aCB0aGUgbmV3
IFVSTCB3aGVuIHRoZSBleHRlbnNpb24gdGFiIGlmcmFtZSBjb21wbGV0ZXMgYSBsb2FkLgorICAg
ICAgICBEb24ndCBub3RpZnkgdGhlIGNsaWVudCBpZiB0aGUgZXh0ZW5zaW9uIHRhYiBoYXMgbm90
IHlldCBsb2FkZWQuCisKIDIwMjEtMTItMDcgIFJhenZhbiBDYWxpbWFuICA8cmNhbGltYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgZnV6enkgbWF0Y2hpbmcg
aW4gQ1NTIGNvbXBsZXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmYmYzN2FkZjhkMTcyMDA2ZDYyZTM1MzQ3
OTMyYzVkM2Y4MjRkMGMuLjgwZjUxNTk3NWExNmQzOGVhOWNhYzdhNjFlZWU3NmQxOGViMDFmOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMTItMDggIEJKIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5
IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0byBub3RpZmllZCB3aGVu
IGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5MzUKKyAgICAgICAgPHJkYXI6Ly84NjEyMzg5OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJp
bmcgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiBhbiBleHRlbnNpb24gdGFiIGxvYWRzLiBUaGlzIGlz
IGltcGxlbWVudGVkIHNpbWlsYXJseSB0bworICAgICAgICAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRp
ZFNob3dFeHRlbnNpb25UYWI6IGFuZCAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVFeHRlbnNp
b25UYWI6LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25D
bGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZp
Z2F0ZUV4dGVuc2lvblRhYik6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbToKKyAgICAg
ICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6
Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmNy
ZWF0ZVRhYkZvckV4dGVuc2lvbik6CisgICAgICAgIFN0YW5kYXJkaXplIG9uIHJldHVybmluZyB7
cmVzdWx0OiB2YWx1ZX0gZm9yIHNob3dFeHRlbnNpb25UYWIuCisKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpzaG93RXh0ZW5zaW9uVGFiKToKKyAg
ICAgICAgU3RhbmRhcmRpemUgb24gcmV0dXJuaW5nIHtyZXN1bHQ6IHZhbHVlfSBmb3Igc2hvd0V4
dGVuc2lvblRhYi4KKyAgICAgICAgQWxzbywgdGhlcmUncyBubyBuZWVkIHRvIGluc3BlY3QgdGhl
IHJlc3VsdCB2YWx1ZSBpZiBpdCdzIG5vdCBhbiBlcnJvci4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFi
KToKKyAgICAgICAgQWRkIHBsdW1iaW5nLgorCiAyMDIxLTEyLTA4ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdyBjb3JyZWN0IGNvbnRlbnQg
bWVudSBmb3IgaW1hZ2VzIHNlcnZpY2VzIGNoZXZyb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDI2Nzg4M2Q5OTI1MWUy
ZWI1ZWViNDkyMGM2YzAwNjA2NjViNmM5MzcuLmFhMzIyNjUxNmU4ZmY1NjQ2OWY4OTJhYzgzM2Ex
ZWY1ZWZlYTZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNv
bnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
TmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25zdCBVUkwmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIHsgfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAKaW5kZXggMjE4ZGY2YTE5MTEyOTQ4MTUzYTFkYmY0OTVlZjU1ZWEwZjFlNmY3ZS4uOGFhZGFk
MWZiYWVlMzg3ZTg5NzBhNjVmMWYyOTdlZjllZDJhZjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTcwNyw2ICs3MDcs
MTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29u
c3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QKICAgICBtX2NsaWVudC0+ZGlkSGlkZUV4dGVu
c2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIEluc3BlY3Rv
ckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRl
bnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCwgY29uc3QgU3RyaW5nJiBuZXdV
UkxTdHJpbmcpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5z
aW9uVGFiSUQsIHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsKK30KKwogdm9pZCBJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBTdHJpbmcmIG5ld1VS
TFN0cmluZykKIHsKICAgICBpZiAoIW1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDdiM2JhYWQ3MWYwZWZlOWNlNjZh
MmZlNjIxMzNjMDUxOWNkMWFiYWUuLjJmN2UwNzM0YzNhYjJjM2FkYWY2YTczMDAwN2E4M2M3MDU3
MGJiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RP
Ul9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklEKTsKICAgICB2b2lkIGRp
ZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5n
JiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklELCBjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3Qg
U3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gZXZhbHVhdGVTY3Jp
cHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJhbWUsIGNvbnN0
IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA1MGUxNGRkYzBmYjAyMDhl
YWVjYzM2ZWRhOWY0NjE0NjA1MWU4YTZlLi45ZmFmNzU3MTJjNTQyNDY4NGRhYjFlYjUwYzk2N2U1
YWJjOGVjYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYgKzEwMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRlbnNpb25zOwogICAgIFtDb25kaXRpb25hbD1JTlNQ
RUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZFNob3dFeHRlbnNpb25UYWIoRE9NU3RyaW5n
IGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwogICAgIFtDb25kaXRpb25h
bD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZEhpZGVFeHRlbnNpb25UYWIoRE9N
U3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOworICAgIFtDb25k
aXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZE5hdmlnYXRlRXh0ZW5z
aW9uVGFiKERPTVN0cmluZyBleHRlbnNpb25JRCwgRE9NU3RyaW5nIGV4dGVuc2lvblRhYklELCBE
T01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SX0VYVEVOU0lPTlNd
IHVuZGVmaW5lZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoRE9NU3RyaW5nIG5ld1VSTCk7CiAg
ICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSBhbnkgZXZhbHVhdGVTY3JpcHRJ
bkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCBleHRlbnNpb25GcmFtZSwgRE9NU3RyaW5n
IHNjcmlwdFNvdXJjZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYklu
c3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKaW5kZXggOTk1ZjdlOTc0OGM4MzA0YWVmMTBk
NzZhY2UzYThiOGQ4MjMxOGE4Ni4uN2ZlYjQ1ZGM4N2M0NjNkZjNjZjk1ZGQ5M2QwMGJiODM0ZGUz
YzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRl
bnNpb25Db250cm9sbGVyLmpzCkBAIC05Myw3ICs5Myw3IEBAIFdJLldlYkluc3BlY3RvckV4dGVu
c2lvbkNvbnRyb2xsZXIgPSBjbGFzcyBXZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4
dGVuCiAgICAgICAgIFdJLnRhYkJyb3dzZXIuYWRkVGFiRm9yQ29udGVudFZpZXcodGFiQ29udGVu
dFZpZXcsIHtzdXBwcmVzc0FuaW1hdGlvbnM6IHRydWV9KTsKIAogICAgICAgICAvLyBUaGUgY2Fs
bGluZyBjb252ZW50aW9uIGlzIHRvIHJldHVybiBhbiBlcnJvciBzdHJpbmcgb3IgYSByZXN1bHQg
b2JqZWN0LgotICAgICAgICByZXR1cm4ge2V4dGVuc2lvblRhYklEfTsKKyAgICAgICAgcmV0dXJu
IHsicmVzdWx0IjogZXh0ZW5zaW9uVGFiSUR9OwogICAgIH0KIAogICAgIGV2YWx1YXRlU2NyaXB0
Rm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCBzY3JpcHRTb3VyY2UsIHtmcmFtZVVSTCwgY29udGV4
dFNlY3VyaXR5T3JpZ2luLCB1c2VDb250ZW50U2NyaXB0Q29udGV4dH0gPSB7fSkKQEAgLTE4Myw2
ICsxODMsMTAgQEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciA9IGNsYXNzIFdl
Ykluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgZXh0ZW4KICAgICAgICAgfQogCiAgICAgICAg
IHRhYkNvbnRlbnRWaWV3LnZpc2libGUgPSB0cnVlOworCisgICAgICAgIC8vIENsaWVudHMgZXhw
ZWN0IHRvIGJlIGFibGUgdG8gdXNlIGV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoKSB3aGVu
IHRoaXMgbWV0aG9kCisgICAgICAgIC8vIHJldHVybnMsIHNvIHdhaXQgZm9yIHRoZSBleHRlbnNp
b24gdGFiIHRvIGZpbmlzaCBpdHMgbG9hZGluZyBzZXF1ZW5jZS4gV3JhcCB0aGUgcmVzdWx0Lgor
ICAgICAgICByZXR1cm4gdGFiQ29udGVudFZpZXcud2hlblBhZ2VBdmFpbGFibGUoKS50aGVuKChz
b3VyY2VVUkwpID0+IHsgcmV0dXJuIHsicmVzdWx0Ijogc291cmNlVVJMfTsgfSk7CiAgICAgfQog
CiAgICAgaGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCwgb3B0aW9ucyA9IHt9KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5z
cGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwppbmRleCBiNWNlNTRkOTFhZDFiYThm
OTkxYTI3Y2RkMzBmMTkzYjMwMTQ5ZTE1Li41YzhmMjE0YTUzOTRmZDA0MjZiYzAyZGIyN2E3NWE0
ZDIyYTRiNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcwpAQCAt
MjEwLDggKzIxMCwxMSBAQCBJbnNwZWN0b3JGcm9udGVuZEFQSSA9IHsKICAgICAgICAgcmV0dXJu
IFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLnVucmVnaXN0ZXJFeHRlbnNpb24oZXh0
ZW5zaW9uSUQpOwogICAgIH0sCiAKLSAgICAvLyBSZXR1cm5zIGEgV0kuV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uLkVycm9yQ29kZSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIGFuIG9iamVj
dAotICAgIC8vIHdpdGggYW4gJ2V4dGVuc2lvblRhYklEJyBrZXkgcmVwcmVzZW50aW5nIHRoZSB0
YWIgaWRlbnRpZmllciBmb3IgdGhlIG5ld2x5IGNyZWF0ZWQgdGFiLgorICAgIC8vIFJldHVybnMg
YSBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlIGlmIGFuIGVycm9yIG9jY3VycmVk
IHRoYXQgcHJldmVudGVkIHRhYiBjcmVhdGlvbi4KKyAgICAvLyBSZXR1cm5zIGEgUHJvbWlzZSB0
aGF0IGlzIHJlc29sdmVkIGlmIHRoZSBldmFsdWF0aW9uIGNvbXBsZXRlcyBhbmQgcmVqZWN0ZWQg
aWYgdGhlcmUgd2FzIGFuIGludGVybmFsIGVycm9yLgorICAgIC8vIFdoZW4gdGhlIHByb21pc2Ug
aXMgZnVsZmlsbGVkLCBpdCB3aWxsIGJlIGVpdGhlcjoKKyAgICAvLyAtIHJlc29sdmVkIHdpdGgg
YW4gb2JqZWN0IGNvbnRhaW5pbmcgYSAncmVzdWx0JyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhl
IHRhYiBpZGVudGlmaWVyIGZvciB0aGUgbmV3IHRhYi4KKyAgICAvLyAtIHJlamVjdGVkIHdpdGgg
YW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gJ2Vycm9yJyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhl
IGV4Y2VwdGlvbiB0aGF0IHdhcyB0aHJvd24gd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQuCiAgICAg
Y3JlYXRlVGFiRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCB0YWJOYW1lLCB0YWJJY29uVVJMLCBz
b3VyY2VVUkwpCiAgICAgewogICAgICAgICByZXR1cm4gV0kuc2hhcmVkQXBwLmV4dGVuc2lvbkNv
bnRyb2xsZXIuY3JlYXRlVGFiRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCB0YWJOYW1lLCB0YWJJ
Y29uVVJMLCBzb3VyY2VVUkwpOwpAQCAtMjMzLDcgKzIzNiwxMSBAQCBJbnNwZWN0b3JGcm9udGVu
ZEFQSSA9IHsKICAgICAgICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVy
LnJlbG9hZEZvckV4dGVuc2lvbihleHRlbnNpb25JRCwge2lnbm9yZUNhY2hlLCB1c2VyQWdlbnQs
IGluamVjdGVkU2NyaXB0fSk7CiAgICAgfSwKIAotICAgIC8vIFJldHVybnMgYSBXSS5XZWJJbnNw
ZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlIGlmIGFuIGVycm9yIG9jY3VycmVkLCBvdGhlcndpc2Ug
bm90aGluZy4KKyAgICAvLyBSZXR1cm5zIGEgc3RyaW5nIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNp
b24uRXJyb3JDb2RlKSBpZiBhbiBlcnJvciBvY2N1cnJlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBz
d2l0Y2ggdGFicy4KKyAgICAvLyBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGlm
IHRoZSB0YWIgY291bGQgYmUgc2hvd24gYW5kIHJlamVjdGVkIGlmIHRoZSB0YWIgY291bGQgbm90
IGJlIHNob3duLgorICAgIC8vIFdoZW4gdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBpdCB3aWxs
IGJlIGVpdGhlcjoKKyAgICAvLyAtIHJlc29sdmVkIHdpdGggbm8gdmFsdWUuCisgICAgLy8gLSBy
ZWplY3RlZCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGFuICdlcnJvcicga2V5IGFuZCB2YWx1
ZSB0aGF0IGlzIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgdGhyb3duIHdoaWxlIHNob3dpbmcgdGhl
IHRhYi4KICAgICBzaG93RXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklEKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLnNob3dFeHRlbnNpb25U
YWIoZXh0ZW5zaW9uVGFiSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JF
eHRlbnNpb25UYWJDb250ZW50Vmlldy5qcwppbmRleCAxYjNhOTg0MGM2Y2Y1NGJlY2ZiNDMwYjZk
NjM4MWNiZDNhOGExMDhmLi5iMWY1NDM4NzgzZTUxMmQ1M2RhZjkzMjc0MWI1ZjMxMjY2ZjVjYjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9X
ZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250
ZW50Vmlldy5qcwpAQCAtNDAsMTEgKzQwLDExIEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRh
YkNvbnRlbnRWaWV3ID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpCiAg
ICAgICAgIHRoaXMuX3RhYkluZm8gPSB0YWJJbmZvOwogICAgICAgICB0aGlzLl9zb3VyY2VVUkwg
PSBzb3VyY2VVUkw7CiAKKyAgICAgICAgdGhpcy5faWZyYW1lRmluaXNoZWRJbml0aWFsTG9hZCA9
IGZhbHNlOworICAgICAgICB0aGlzLl93aGVuUGFnZUF2YWlsYWJsZVByb21pc2UgPSBuZXcgV0ku
V3JhcHBlZFByb21pc2U7CisKICAgICAgICAgdGhpcy5faWZyYW1lRWxlbWVudCA9IHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSk7CiAgICAg
ICAgIHRoaXMuX2lmcmFtZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2V4
dGVuc2lvbkZyYW1lRGlkTG9hZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5faWZyYW1lRWxl
bWVudC5zcmMgPSB0aGlzLl9zb3VyY2VVUkw7Ci0KLSAgICAgICAgdGhpcy5fZnJhbWVDb250ZW50
RGlkTG9hZCA9IGZhbHNlOwogICAgIH0KIAogICAgIC8vIFN0YXRpYwpAQCAtNzMsNiArNzMsMTEg
QEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcgPSBjbGFzcyBXZWJJbnNw
ZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CisgICAgd2hlblBhZ2VBdmFpbGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3do
ZW5QYWdlQXZhaWxhYmxlUHJvbWlzZS5wcm9taXNlOworICAgIH0KKwogICAgIGF0dGFjaGVkKCkK
ICAgICB7CiAgICAgICAgIHN1cGVyLmF0dGFjaGVkKCk7CkBAIC0xMDksMTMgKzExNCwzNSBAQCBX
SS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmlldyA9IGNsYXNzIFdlYkluc3BlY3Rv
ckV4dGVuc2lvblRhYkNvbnRlbnRWaQogCiAgICAgX2V4dGVuc2lvbkZyYW1lRGlkTG9hZCgpCiAg
ICAgewotICAgICAgICB0aGlzLl9mcmFtZUNvbnRlbnREaWRMb2FkID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5fbWF5YmVEaXNwYXRjaERpZFNob3dFeHRlbnNpb25UYWIoKTsKKyAgICAgICAgLy8gQm91
bmNlIGZyb20gdGhlIGluaXRpYWwgZW1wdHkgcGFnZSB0byB0aGUgcmVxdWVzdGVkIHNvdXJjZVVS
TC4KKyAgICAgICAgaWYgKCF0aGlzLl9pZnJhbWVGaW5pc2hlZEluaXRpYWxMb2FkKSB7CisgICAg
ICAgICAgICB0aGlzLl9pZnJhbWVGaW5pc2hlZEluaXRpYWxMb2FkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5FeHRl
bnNpb25UYWIodGhpcy5fZXh0ZW5zaW9uVGFiSUQsIGBkb2N1bWVudC5sb2NhdGlvbi5yZXBsYWNl
KCIke3RoaXMuX3NvdXJjZVVSTH0iKTtgKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIFNpZ25hbCB0aGF0IHRoZSBwYWdlIGlzIGF2YWlsYWJsZSBzaW5jZSB3
ZSBhbHJlYWR5IGJvdW5jZWQgdG8gdGhlIHJlcXVlc3RlZCBwYWdlLgorICAgICAgICBpZiAoIXRo
aXMuX3doZW5QYWdlQXZhaWxhYmxlUHJvbWlzZS5zZXR0bGVkKQorICAgICAgICAgICAgdGhpcy5f
d2hlblBhZ2VBdmFpbGFibGVQcm9taXNlLnJlc29sdmUodGhpcy5fc291cmNlVVJMKTsKKworICAg
ICAgICB0aGlzLl9tYXliZURpc3BhdGNoRGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKTsKKyAgICB9
CisKKyAgICBhc3luYyBfbWF5YmVEaXNwYXRjaERpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5lbGVtZW50LmlzQ29ubmVjdGVkKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGxldCBwYXlsb2FkID0gYXdhaXQgV0kuc2hhcmVkQXBwLmV4dGVu
c2lvbkNvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYih0aGlzLl9leHRlbnNp
b25UYWJJRCwgImRvY3VtZW50LmxvY2F0aW9uLmhyZWYiKTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQocGF5bG9hZC5yZXN1bHQsICJTaG91bGQgYmUgYWJsZSB0byB1bndyYXAgZXZhbHVhdGlvbiBp
biBleHRlbnNpb24gdGFiISIpOworCisgICAgICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
c3VwcG9ydHNXZWJFeHRlbnNpb25zKQorICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKHRoaXMuX2V4dGVuc2lvbi5leHRlbnNpb25JRCwgdGhp
cy5fZXh0ZW5zaW9uVGFiSUQsIHBheWxvYWQucmVzdWx0KTsKICAgICB9CiAKICAgICBfbWF5YmVE
aXNwYXRjaERpZFNob3dFeHRlbnNpb25UYWIoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9m
cmFtZUNvbnRlbnREaWRMb2FkIHx8ICF0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCisgICAgICAg
IGlmICghdGhpcy5lbGVtZW50LmlzQ29ubmVjdGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3Quc3VwcG9ydHNXZWJFeHRlbnNpb25zKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVu
c2lvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4
dGVuc2lvbkNsaWVudC5oCmluZGV4IDNhZjgzYjgyYTEzMTliNDVkZGE2ZDk2MWY1YTU4NjgwZjRk
YjYzNTIuLjNhNTE2NTZjNmQ4ZmJkZGU5OTk1ZjU3NzgwNzA0ZDk1MzYyYmY0ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5z
aW9uQ2xpZW50LmgKQEAgLTM3LDYgKzM3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uVGFiSUQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNp
b25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFdURjo6VVJMJikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6
OlVSTCYpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAppbmRleCA1
MGNiZGFlNzMxZWU4N2E1ZWZhNmQ4N2I3OThjNGUyNDU5N2EzYmQzLi4xM2JjNzUyYTFhZGRlMjQx
Y2U1MWU1NmVjNTBmZTlkNDMwYTA1YjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdh
dGUuaApAQCAtNTIsOCArNTIsMTcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAqLwogLSAo
dm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lv
biBkaWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcjsKIAor
LyoqCisgKiBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gYSB0YWIgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
ZXh0ZW5zaW9uIGhhcyBuYXZpZ2F0ZWQgdG8gYSBuZXcgVVJMLgorICogQHBhcmFtIGV4dGVuc2lv
biBUaGUgZXh0ZW5zaW9uIHRoYXQgY3JlYXRlZCB0aGUgdGFiLgorICogQHBhcmFtIHRhYklkZW50
aWZpZXIgSWRlbnRpZmllciBmb3IgdGhlIHRhYiB0aGF0IG5hdmlnYXRlZC4KKyAqIEBwYXJhbSBV
UkwgVGhlIG5ldyBVUkwgZm9yIHRoZSBleHRlbnNpb24gdGFiJ3MgcGFnZS4KKyAqLworLSAodm9p
ZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBk
aWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKXRhYklkZW50aWZpZXIgbmV3
VVJMOihOU1VSTCAqKW5ld1VSTDsKKwogLyoqCiAgKiBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhl
IGluc3BlY3RlZCBwYWdlIGhhcyBuYXZpZ2F0ZWQgdG8gYSBuZXcgVVJMLgorICogQHBhcmFtIGV4
dGVuc2lvbiBUaGUgZXh0ZW5zaW9uIHRoYXQgaXMgYmVpbmcgbm90aWZpZWQuCiAgKiBAcGFyYW0g
dXJsIFRoZSBuZXcgVVJMIGZvciB0aGUgaW5zcGVjdGVkIHBhZ2UuCiAgKi8KIC0gKHZvaWQpaW5z
cGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlOihOU1VSTCAqKXVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLmgKaW5kZXggMjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFmNWExNmNi
ZGFmYS4uNzU4N2U3ZWNiZDQ0YTlkYjQ4N2Y0MmJhZDQ4OTExYjk1MTNhMTMxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0Nv
Y29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgLy8gQVBJOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQKICAgICAgICAgdm9p
ZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBv
dmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWROYXZpZ2F0ZUV4
dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikg
b3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVS
TCYpIG92ZXJyaWRlOwogCiAgICAgICAgIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlJiBtX2lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlOwpAQCAtNjcsNiArNjgsNyBAQCBwcml2YXRlOgogICAg
IHN0cnVjdCB7CiAgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5zaW9uRGlkU2hvd1RhYldpdGhJ
ZGVudGlmaWVyIDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRIaWRlVGFi
V2l0aElkZW50aWZpZXIgOiAxOworICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZE5h
dmlnYXRlVGFiV2l0aElkZW50aWZpZXIgOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckV4dGVu
c2lvbkluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9k
czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggZGM2
NzcwMGRkMTY3ZjVmYjQ0ZjJiY2FhOTcwZDcxZDBlZDVjYWY4ZC4uMTBjNzIzNGVlYjgwNDFhZDI2
ZjNjOGIxZDEwYTUwYzUwMWE0NjQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZS5tbQpAQCAtNDEsNiArNDEsNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICppbgogewog
ICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRl
bnRpZmllciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3Rv
ckV4dGVuc2lvbjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMuaW5zcGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhp
ZGVUYWJXaXRoSWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JF
eHRlbnNpb25EaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0
aElkZW50aWZpZXI6bmV3VVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4
dGVuc2lvbkluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdh
dGU6KV07CiAKICAgICBpbnNwZWN0b3JFeHRlbnNpb24tPl9leHRlbnNpb24tPnNldENsaWVudCht
YWtlVW5pcXVlUmVmPEluc3BlY3RvckV4dGVuc2lvbkNsaWVudD4oKnRoaXMpKTsKQEAgLTg2LDYg
Kzg3LDE4IEBAIHZvaWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVu
c2lvbkNsaWVudDo6ZGlkSGlkZUV4dGVuc2lvblRhYihjCiAgICAgW2RlbGVnYXRlIGluc3BlY3Rv
ckV4dGVuc2lvbjptX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1faW5zcGVjdG9yRXh0ZW5z
aW9uLmdldCgpLmdldCgpIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpleHRlbnNpb25UYWJJRF07
CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lv
bkNsaWVudDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCit7CisgICAg
aWYgKCFtX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3Bl
Y3RvckV4dGVuc2lvbkRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5t
X2RlbGVnYXRlOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtk
ZWxlZ2F0ZSBpbnNwZWN0b3JFeHRlbnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5t
X2luc3BlY3RvckV4dGVuc2lvbi5nZXQoKS5nZXQoKSBkaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlm
aWVyOmV4dGVuc2lvblRhYklEIG5ld1VSTDpuZXdVUkxdOworfQorCiB2b2lkIEluc3BlY3RvckV4
dGVuc2lvbkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VE
aWROYXZpZ2F0ZShjb25zdCBXVEY6OlVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9pbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25J
bnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5LmNwcAppbmRleCAxY2FmN2NiMDRiODAzNGM1NTBiZDNmOTY1YzVk
NTAxMTA1MjNlNzQ0Li5lODg2NjA4ZDE4NmY2NjNjNWU5ZGRlYWU0ZDgzM2IwYWNjNTg2NjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAK
QEAgLTI2OCw2ICsyNjgsMjAgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3IKICAgICBleHRlbnNp
b25DbGllbnQtPmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lk
IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJM
JiBuZXdVUkwpCit7CisgICAgYXV0byBpdCA9IG1fZXh0ZW5zaW9uQVBJT2JqZWN0TWFwLmZpbmQo
ZXh0ZW5zaW9uSUQpOworICAgIGlmIChpdCA9PSBtX2V4dGVuc2lvbkFQSU9iamVjdE1hcC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9u
PiBleHRlbnNpb24gPSBpdC0+dmFsdWU7CisgICAgYXV0byBleHRlbnNpb25DbGllbnQgPSBleHRl
bnNpb24tPmNsaWVudCgpOworICAgIGlmICghZXh0ZW5zaW9uQ2xpZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBleHRlbnNpb25DbGllbnQtPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVu
c2lvblRhYklELCBuZXdVUkwpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwp
CiB7CiAgICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBjb3B5VG9WZWN0b3IobV9leHRlbnNpb25B
UElPYmplY3RNYXAudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGQxOTdjOWVhYzIwYjUyYzJkOTIzNWU2ZGEwNzdhOGQ2
ZDZiYTBhN2YuLjU3MWFmNjI3NDk3OGFiYjFhNWVmN2Y0YTMzOGYzYWM4NTJlMjNiM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02OCw2
ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eSBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
Jik7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBkaWRO
YXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiAgICAgLy8gTm90aWZpY2F0aW9ucy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA2NDMzMTQzMjRkZDVkMmMxNWY4MzFjYjM3MjY2YWQ4NjFiN2I4
YTM1Li40MmFhMzdmMGQ4ZjVjODY5ODNhOThhYzk1MDM4MDRkMzkxNWQzMmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eSB7CiAgICAgRGlkU2hvd0V4dGVuc2lvblRhYihTdHJpbmcgZXh0
ZW5zaW9uSUQsIFN0cmluZyBleHRlbnNpb25UYWJJRCkKICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFi
KFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklEKQorICAgIERpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklE
LCBVUkwgbmV3VVJMKQogICAgIEluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShVUkwgbmV3VVJMKQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGM4YWQzMTg2OTVkOWFjNWRkZGYyZjkxY2Iy
MjA1NmUxYzY2YjZkYmMuLjNjZWVhZDg1NDQyYWJmMDUzYTU5OTQwODJkODliZTc5NzJlMDg0ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zMDYsNiArMzA2LDE0IEBAIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRl
bnNpb25JRCYgZXh0CiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9u
VGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5z
cGVjdG9yVUk6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRl
bnNpb25UYWJJRCwgY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNv
bnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+
ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdV
UkwpOworfQorCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1Jl
bW90ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggMzZjNzAxMTNjZjRiN2Y5MjliMTRhYWFjOWVkNDU3
NDc2MWVkNTVkZS4uZDI5ODlhZGEzMTU4ZDJlN2NiNDU1N2E4OWM0YWM4YTU5ZjIwYjM1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNw
ZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1
cHBvcnRzV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRl
bnNpb25UYWJJRCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJ
RCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBj
b25zdCBVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShj
b25zdCBVUkwmKSBvdmVycmlkZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGZhN2NjZDk0OTc5
NjA1MzJlMmMwNDk3MjM0NGQzZjMxZDc5M2I2MjcuLjhkNTRmMzU4MDBjNmZmMmFjNjE3ODRjZmE1
NTQ4NmRkZWI3ZDgxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zODAsNiArMzgwLDE0IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25J
RCwgY29uc3QgU3RyaW5nCiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5z
aW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVj
dG9yVUk6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQs
IGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAg
IGlmICghbV9leHRlbnNpb25Db250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2V4
dGVuc2lvbkNvbnRyb2xsZXItPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBl
eHRlbnNpb25UYWJJRCwgbmV3VVJMKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSTo6aW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9leHRl
bnNpb25Db250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGY2ZWQ3MDRjZmFkY2UwOTRlMDk1MThlNTZmOTk2
MWFjYTE3ZTI0OGEuLjgzNmM4MDU4MmQ4NzZlNDU1YjkwNGYwYzMwNWU1YjMyMDUxYzAzZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJLmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1dlYkV4
dGVuc2lvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJikg
b3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuY3BwCmluZGV4IDM5NjJmYzdkZWNkZDdhNWIyZTQyYzdhOGY0ZGY3YmFjYWFmNTU5YjEu
LjQ3Y2UzNjNjMGE4ZmFjYzU4YjBjYzc5Y2RlZWNiOTZjNWQ0MzRiZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6Y3JlYXRlVGFiRm9yRXh0ZW5z
aW9uKGNvbnN0IEluc3BlY3Rvcjo6RQogICAgICAgICB9CiAKICAgICAgICAgYXV0byogZnJvbnRl
bmRHbG9iYWxPYmplY3QgPSB3ZWFrVGhpcy0+bV9mcm9udGVuZENsaWVudC0+ZnJvbnRlbmRBUElE
aXNwYXRjaGVyKCkuZnJvbnRlbmRHbG9iYWxPYmplY3QoKTsKLSAgICAgICAgSlNDOjpKU1ZhbHVl
IGZvdW5kUHJvcGVydHkgPSBvYmplY3RSZXN1bHQtPmdldChmcm9udGVuZEdsb2JhbE9iamVjdCwg
SlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGZyb250ZW5kR2xvYmFsT2JqZWN0LT52bSgpLCAi
ZXh0ZW5zaW9uVGFiSUQiX3MpKTsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGZvdW5kUHJvcGVydHkg
PSBvYmplY3RSZXN1bHQtPmdldChmcm9udGVuZEdsb2JhbE9iamVjdCwgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKGZyb250ZW5kR2xvYmFsT2JqZWN0LT52bSgpLCAicmVzdWx0Il9zKSk7CiAg
ICAgICAgIGlmICghZm91bmRQcm9wZXJ0eSB8fCAhZm91bmRQcm9wZXJ0eS5pc1N0cmluZygpKSB7
CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yOjpJbnRlcm5hbEVycm9yKSk7CiAgICAgICAgICAgICByZXR1cm47CkBA
IC0zNTcsMTEgKzM1NywxOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
cjo6c2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVucwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKGF1dG8gcGFyc2VkRXJyb3IgPSB3ZWFrVGhpcy0+cGFyc2VFeHRlbnNpb25F
cnJvckZyb21FdmFsdWF0aW9uUmVzdWx0KHJlc3VsdCkpIHsKLSAgICAgICAgICAgIExPRyhJbnNw
ZWN0b3IsICJJbnRlcm5hbCBlcnJvciBlbmNvdW50ZXJlZCB3aGlsZSBldmFsdWF0aW5nIHVwb24g
dGhlIGZyb250ZW5kOiAlcyIsIEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZygqcGFy
c2VkRXJyb3IpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWUo
KS5oYXNfdmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gZXhjZXB0aW9uRGV0YWlscyA9
IHJlc3VsdC52YWx1ZSgpLmVycm9yKCk7CisgICAgICAgICAgICAgICAgTE9HKEluc3BlY3Rvciwg
IkludGVybmFsIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIHNob3dpbmcgZXh0ZW5zaW9uIHRhYiBh
dCAlczolZDolZDogJXMiLCBleGNlcHRpb25EZXRhaWxzLnNvdXJjZVVSTC51dGY4KCkuZGF0YSgp
LCBleGNlcHRpb25EZXRhaWxzLmxpbmVOdW1iZXIsIGV4Y2VwdGlvbkRldGFpbHMuY29sdW1uTnVt
YmVyLCBleGNlcHRpb25EZXRhaWxzLm1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiSW50ZXJuYWwgZXJyb3Ig
ZW5jb3VudGVyZWQgd2hpbGUgc2hvd2luZyBleHRlbnNpb24gdGFiLiIpOworCiAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZCgqcGFyc2VkRXJyb3IpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIC8vIElmIHRoaXMgYXNzZXJ0aW9u
IGZhaWxzLCB0aGVuIGEgYHJlc3VsdC5lcnJvcigpYCB3YXMgbm90IGhhbmRsZWQgYWJvdmUgYXMg
ZXhwZWN0ZWQuCisgICAgICAgIEFTU0VSVChyZXN1bHQuaGFzX3ZhbHVlKCkpOworCiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfSk7CiB9CkBAIC00NDQsNiArNDUyLDExIEBA
IHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWRIaWRlRXh0ZW5zaW9u
VGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHk6OkRpZEhpZGVFeHRlbnNpb25UYWIgeyBleHRlbnNpb25JRCwg
ZXh0ZW5zaW9uVGFiSUQgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmllcik7CiB9CiAKK3ZvaWQg
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpE
aWROYXZpZ2F0ZUV4dGVuc2lvblRhYiB7IGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCwgbmV3
VVJMIH0sIG1faW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVS
TCYgbmV3VVJMKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5OjpJbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUgeyBuZXdVUkwgfSwgbV9pbnNwZWN0
b3JQYWdlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuaAppbmRleCA0YTc5N2UzZmNkNWI4NTdjMGU3MWZmMTg1ZWJlZjY2MDFhNzYxNjlmLi5iZDA3
YTEwNGEyMzkyNTQyMmVmZTlhMTU0MTcyNjhhNzQ4MTMwMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogICAg
IC8vIENhbGxiYWNrcyBmcm9tIHRoZSBmcm9udGVuZC4KICAgICB2b2lkIGRpZFNob3dFeHRlbnNp
b25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uVGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKKyAg
ICB2b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJik7CiAgICAg
dm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJik7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjVmZDNm
ZmE1OWMxODYwMjYxMTBkNzg2ZWI3MDAyMDg2M2U0YWM3MC4uOGQzNGYxYzg2MzkzZDM4MTViNTU3
ODI2ZDA3OTc5YzRmNjM0OWVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA4ICBCSiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBh
IHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8gbm90aWZpZWQg
d2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8vODYxMjM4OTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQ
SSB0ZXN0IGNvdmVyYWdlIGZvciAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0
aElkZW50aWZpZXI6bmV3VVJMOgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbi5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICBEcml2ZS1ieSwgZml4IGFuIG91dGRhdGVkIGNvbXBsZXRpb24gaGFuZGxlciB0eXBlIHNpZ25h
dHVyZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGVGb3JUZXN0aW5nIGluc3BlY3RvckV4dGVuc2lvbjpkaWROYXZpZ2F0ZVRhYldpdGhJ
ZGVudGlmaWVyOm5ld1VSTDpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBBZGQgYSB0ZXN0
IGNhc2Ugd2hpY2ggZXhlcmNpc2VzIHRoZSBuZXcgZGVsZWdhdGUgbWV0aG9kLgorCiAyMDIxLTEy
LTA4ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGluZ3RvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY0NhdGFseXN0XSBVcGRhdGUgaGVhZGVyIHNlYXJjaCBwYXRocyBmb3IgQU5HTEUgQ2F0YWx5
c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJ
bnNwZWN0b3JFeHRlbnNpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCmluZGV4IDY2ZDkzMTZlM2Y0OWE5MWY4ODJkNWFl
ZjRiZTY5MDFhMTA1ZTFkYmUuLjc3NjVmMDU5NGMzNWQwNTljNjQ1MzM0ODE4MWRjMzM2MTdhMDAx
YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJ
bnNwZWN0b3JFeHRlbnNpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbi5tbQpAQCAtMTQ0LDcgKzE0NCw3IEBAIFRFU1Qo
V0tJbnNwZWN0b3JFeHRlbnNpb24sIENhbkV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIpCiAg
ICAgLy8gUmVhZCBiYWNrIGEgdmFsdWUgdGhhdCBpcyBzZXQgaW4gdGhlIDxpZnJhbWU+J3Mgc2Ny
aXB0IGNvbnRleHQuCiAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAg
YXV0byBzY3JpcHRTb3VyY2UyID0gQCJ3aW5kb3cuX3NlY3JldFZhbHVlIjsKLSAgICBbc2hhcmVk
SW5zcGVjdG9yRXh0ZW5zaW9uIGV2YWx1YXRlU2NyaXB0OnNjcmlwdFNvdXJjZTIgaW5UYWJXaXRo
SWRlbnRpZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyLmdldCgpIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvciwgTlNEaWN0aW9uYXJ5ICogX051bGxh
YmxlIHJlc3VsdCkgeworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gZXZhbHVhdGVTY3Jp
cHQ6c2NyaXB0U291cmNlMiBpblRhYldpdGhJZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklk
ZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvciwgaWQgcmVz
dWx0KSB7CiAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKICAgICAgICAgRVhQRUNUX05PVF9O
VUxMKHJlc3VsdCk7CiAgICAgICAgIEVYUEVDVF9OU19FUVVBTChyZXN1bHRbQCJhbnN3ZXIiXSwg
QDQyKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uLCBDYW5F
dmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKQogICAgIC8vIENoZWNrIHRvIHNlZSB0aGF0IHNj
cmlwdCBpcyBhY3R1YWxseSBiZWluZyBldmFsdWF0ZWQgaW4gdGhlIDxpZnJhbWU+J3Mgc2NyaXB0
IGNvbnRleHQuCiAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAgYXV0
byBzY3JpcHRTb3VyY2UzID0gQCJ3aW5kb3cudG9wICE9PSB3aW5kb3ciOwotICAgIFtzaGFyZWRJ
bnNwZWN0b3JFeHRlbnNpb24gZXZhbHVhdGVTY3JpcHQ6c2NyaXB0U291cmNlMyBpblRhYldpdGhJ
ZGVudGlmaWVyOnNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIuZ2V0KCkgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yLCBOU0RpY3Rpb25hcnkgKiBfTnVsbGFi
bGUgcmVzdWx0KSB7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBldmFsdWF0ZVNjcmlw
dDpzY3JpcHRTb3VyY2UzIGluVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9uVGFiSWRl
bnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yLCBpZCByZXN1
bHQpIHsKICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogICAgICAgICBFWFBFQ1RfTk9UX05V
TEwocmVzdWx0KTsKICAgICAgICAgRVhQRUNUX05TX0VRVUFMKHJlc3VsdCwgQFlFUyk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggODczYTEwYmFlZWJlYjBm
MDRlY2M3ODcwZGEyZjkwZTUzZDQxMmNiMC4uODE0ZThiYjM4ZmYxZWI5NjcyNzZlOWIzMjk4OTJh
MDlhYWFmZDU3MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpA
QCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBzdGF0aWMgUmV0
YWluUHRyPE5TVVJMPiBzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb247CitzdGF0aWMgYm9vbCBl
eHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdhc0NhbGxlZDsKIAogQGludGVyZmFjZSBVSURlbGVnYXRl
Rm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxl
Z2F0ZT4KIEBlbmQKQEAgLTg0LDYgKzg1LDExIEBAIC0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9u
OihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkSGlkZVRhYldpdGhJZGVuCiAg
ICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IHRydWU7CiB9CiAKKy0gKHZvaWQpaW5z
cGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gZGlkTmF2
aWdhdGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyIG5ld1VSTDoo
TlNVUkwgKiluZXdVUkwKK3sKKyAgICBleHRlbnNpb25UYWJEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9
IHRydWU7Cit9CisKIC0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRl
bnNpb24gKilleHRlbnNpb24gaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOihOU1VSTCAqKW5ld1VS
TAogewogICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IHRydWU7CkBAIC0y
MzQsNCArMjQwLDk4IEBAIFRFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgSW5zcGVj
dGVkUGFnZU5hdmlnYXRlZENhbGxiYWNrcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CiB9CiAKKy8vIEZJWE1FOiBSZS1lbmFibGUgdGhp
cyB0ZXN0IGZvciBkZWJ1ZyBvbmNlIHdlYmtpdC5vcmcvYi8yMzE4NDcgaXMgZml4ZWQuCisjaWYg
IWRlZmluZWQoTkRFQlVHKQorVEVTVChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBESVNB
QkxFRF9FeHRlbnNpb25UYWJOYXZpZ2F0ZWRDYWxsYmFja3MpCisjZWxzZQorVEVTVChXS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLCBFeHRlbnNpb25UYWJOYXZpZ2F0ZWRDYWxsYmFja3MpCisj
ZW5kaWYKK3sKKyAgICByZXNldEdsb2JhbFN0YXRlKCk7CisKKyAgICAvLyBIb29rIHVwIHRoZSB0
ZXN0LXJlc291cmNlOiBoYW5kbGVyIHNvIHRoYXQgd2UgY2FuIG5hdmlnYXRlIHRvIGEgZGlmZmVy
ZW50IHRlc3QgZmlsZS4KKyAgICBpZiAoIXNoYXJlZFVSTFNjaGVtZUhhbmRsZXIpCisgICAgICAg
IHNoYXJlZFVSTFNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdEluc3BlY3RvclVSTFNjaGVt
ZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIHdlYlZpZXdDb25m
aWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gWUVT
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNoYXJlZFVS
TFNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAidGVzdC1yZXNvdXJjZSJdOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbVUlEZWxlZ2F0
ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSBuZXddKTsKKworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbW3dlYlZpZXcgX2lu
c3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRhY2hM
b2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICAvLyBSZWdpc3RlciB0aGUgdGVzdCBleHRlbnNp
b24uCisgICAgYXV0byBleHRlbnNpb25JRCA9IFtOU1VVSUQgVVVJRF0uVVVJRFN0cmluZzsKKyAg
ICBhdXRvIGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZpZXIgPSBAImNvbS5hcHBsZS53ZWJraXQuVGhp
cmRFeHRlbnNpb24iOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBAIlRoaXJkRXh0
ZW5zaW9uIjsKKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dl
YlZpZXcgX2luc3BlY3Rvcl0gcmVnaXN0ZXJFeHRlbnNpb25XaXRoSUQ6ZXh0ZW5zaW9uSUQgZXh0
ZW5zaW9uQnVuZGxlSWRlbnRpZmllcjpleHRlbnNpb25CdW5kbGVJZGVudGlmaWVyIGRpc3BsYXlO
YW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJy
b3IsIF9XS0luc3BlY3RvckV4dGVuc2lvbiAqZXh0ZW5zaW9uKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVuc2lvbik7CisgICAgICAg
IHNoYXJlZEluc3BlY3RvckV4dGVuc2lvbiA9IGV4dGVuc2lvbjsKKworICAgICAgICBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIGF1dG8gZXh0ZW5zaW9u
RGVsZWdhdGUgPSBhZG9wdE5TKFtJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3Rpbmcg
bmV3XSk7CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBzZXREZWxlZ2F0ZTpleHRlbnNp
b25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBhdXRvIGJhc2VVUkwgPSBbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
ZzpAIjxoZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRsZT48L2hlYWQ+
PGJvZHk+PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpiYXNlVVJMXTsKKyAg
ICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBpbnNw
ZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCk7CisgICAgRVhQ
RUNUX05TX0VRVUFMKHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbi5nZXQoKS5hYnNvbHV0ZVN0
cmluZywgYmFzZVVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAgaW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlV2FzQ2FsbGVkID0gZmFsc2U7CisKKyAgICAvLyBDcmVhdGUgYW4gZXh0ZW5zaW9uIHRhYi4K
KyAgICBhdXRvIGljb25VUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6
Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5wbmciXTsK
KyAgICBhdXRvIHNvdXJjZVVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdC1yZXNvdXJj
ZTovL1RoaXJkRXh0ZW5zaW9uL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy10YWIuaHRtbCJdOwor
CisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW3NoYXJlZEluc3Bl
Y3RvckV4dGVuc2lvbiBjcmVhdGVUYWJXaXRoTmFtZTpAIlRoaXJkRXh0ZW5zaW9uLVRhYiIgdGFi
SWNvblVSTDppY29uVVJMIHNvdXJjZVVSTDpzb3VyY2VVUkwgY29tcGxldGlvbkhhbmRsZXI6XihO
U0Vycm9yICplcnJvciwgTlNTdHJpbmcgKmV4dGVuc2lvblRhYklkZW50aWZpZXIpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXh0ZW5zaW9u
VGFiSWRlbnRpZmllcik7CisgICAgICAgIHNoYXJlZEV4dGVuc2lvblRhYklkZW50aWZpZXIgPSBl
eHRlbnNpb25UYWJJZGVudGlmaWVyOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxl
ZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQpOworCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFs
c2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3dFeHRlbnNpb25UYWJXaXRoSWRlbnRp
ZmllcjpzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyLmdldCgpIGNvbXBsZXRpb25IYW5kbGVy
Ol4oTlNFcnJvciAqIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAg
ICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBl
bmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIGV4dGVuc2lvblRhYkRpZE5hdmln
YXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBuZXdVUkwgPSBbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24t
YmFzaWMtcGFnZS5odG1sIl07CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBldmFsdWF0
ZVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5sb2NhdGlvbi5yZXBs
YWNlKFwiJUBcIikiLCBuZXdVUkxdIGluVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9u
VGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yLCBp
ZCByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgICAgIHBlbmRp
bmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworCisgICAgLy8g
VW5yZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2Fs
bGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRlbnNp
b246c2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNF
cnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisK
KyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9CisK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446587</attachid>
            <date>2021-12-09 12:12:23 -0800</date>
            <delta_ts>2021-12-09 12:59:21 -0800</delta_ts>
            <desc>Patch v1.3.1 - for landing</desc>
            <filename>bug-233935-20211209121222.patch</filename>
            <type>text/plain</type>
            <size>39202</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YmYyYjlmMWNjMDhk
MjBhODg1Nzc3ODZiODMxNTg5MWI4MGI2Ni4uYjI4OGYyODJhMGE3OTIyNzkyZTAxMDdmMGJiYzk3
YWViMTI0ZjZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA4ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8g
bm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8v
ODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGF0cmljayBBbmdsZS4KKworICAgICAg
ICBBZGQgbmV3IEluc3BlY3RvckZyb250ZW5kSG9zdCBob29rcyB0byBub3RpZnkgdGhlIGNsaWVu
dCBhYm91dCBkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYigpLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRIb3N0OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaWRsOgorCiAyMDIxLTEyLTA4ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdyBjb3JyZWN0IGNvbnRlbnQgbWVu
dSBmb3IgaW1hZ2VzIHNlcnZpY2VzIGNoZXZyb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRl
eCA0YTI5YTc3YzAyMjdmM2E5ZmM1NzgwZGU4NzcyMWM0NjgzNTFlNjVkLi45MTVhZmQxYzllMWQy
YTFkOWI1MmJhMzRmNTcwY2QwN2ZhMzAxNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAyMS0xMi0wOCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3Bl
Y3RvckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIHRvIG5vdGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9u
IHRhYiBuYXZpZ2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzkzNQorICAgICAgICA8cmRhcjovLzg2MTIzODk5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFBhdHJpY2sgQW5nbGUuCisKKyAgICAgICAgSW4gb3JkZXIgaW5zdHJ1bWVudCBhbGwg
bG9hZHMgaW5zaWRlIHRoZSBleHRlbnNpb24gaWZyYW1lLCB3ZSBjYW5ub3QgcmVseSBvbiB0aGUg
PGlmcmFtZSBzcmM+IGF0dHJpYnV0ZQorICAgICAgICB0byBxdWVyeSB0aGUgY3VycmVudGx5IGxv
YWRlZCBwYWdlLCBvciB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgcGFnZS4gVXNlIGEgaGVscGVyIG1l
dGhvZCB0byBxdWVyeSBhbmQgc2V0CisgICAgICAgIHRoZSBpZnJhbWUgbG9jYXRpb24gaW5kaXJl
Y3RseSB1c2luZyBgZG9jdW1lbnQubG9jYXRpb25gLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qczoKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAg
ICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLmNyZWF0
ZVRhYkZvckV4dGVuc2lvbik6CisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250
cm9sbGVyLnByb3RvdHlwZS5zaG93RXh0ZW5zaW9uVGFiKToKKyAgICAgICAgU3RhbmRhcmRpemUg
b24gcmV0dXJuaW5nIHsicmVzdWx0IjogdmFsdWV9IGZyb20gdGhlc2UgbWV0aG9kcy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpZXcuanM6CisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmll
dyk6CisgICAgICAgIChXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90
b3R5cGUud2hlblBhZ2VBdmFpbGFibGUpOiBBZGRlZC4KKyAgICAgICAgKFdJLldlYkluc3BlY3Rv
ckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5fZXh0ZW5zaW9uRnJhbWVEaWRMb2Fk
KToKKyAgICAgICAgVHJpZ2dlciBhIGxvYWQgb2YgdGhlIGFjdHVhbCByZXF1ZXN0ZWQgcGFnZSBi
eSBldmFsdWF0aW5nIGBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gPHVybD5gCisgICAgICAgIGlu
IHRoZSBjb250ZXh0IG9mIHRoZSBleHRlbnNpb24gdGFiIGlmcmFtZS4gTm90aWZ5IGNsaWVudHMg
d2hlbiB0aGlzIG5vbi1pbml0aWFsIGxvYWQgY29tcGxldGVzLgorCisgICAgICAgIChXSS5XZWJJ
bnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5wcm90b3R5cGUuYXN5bmMgX21heWJlRGlz
cGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisgICAgICAgIERpc3BhdGNoIGRpZE5hdmln
YXRlRXh0ZW5zaW9uVGFiIHdpdGggdGhlIG5ldyBVUkwgd2hlbiB0aGUgZXh0ZW5zaW9uIHRhYiBp
ZnJhbWUgY29tcGxldGVzIGEgbG9hZC4KKyAgICAgICAgRG9uJ3Qgbm90aWZ5IHRoZSBjbGllbnQg
aWYgdGhlIGV4dGVuc2lvbiB0YWIgaGFzIG5vdCB5ZXQgbG9hZGVkLgorCiAyMDIxLTEyLTA3ICBS
YXp2YW4gQ2FsaW1hbiAgPHJjYWxpbWFuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBTdXBwb3J0IGZ1enp5IG1hdGNoaW5nIGluIENTUyBjb21wbGV0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5ZmJmMzdhZGY4ZDE3MjAwNmQ2MmUzNTM0NzkzMmM1ZDNmODI0ZDBjLi42MjM0NTFiNmRlMWZl
MmYyZWZjYzdhN2ZiNTZjZjYxYzE2ODM2MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisy
MDIxLTEyLTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
V2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNs
aWVudHMgdG8gYmUgdG8gbm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1Cisg
ICAgICAgIDxyZGFyOi8vODYxMjM4OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGF0cmljayBB
bmdsZS4KKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gbm90aWZ5IGNsaWVudHMgd2hlbiBhbiBl
eHRlbnNpb24gdGFiIGxvYWRzLiBUaGlzIGlzIGltcGxlbWVudGVkIHNpbWlsYXJseSB0bworICAg
ICAgICAtaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZFNob3dFeHRlbnNpb25UYWI6IGFuZCAtaW5zcGVj
dG9yRXh0ZW5zaW9uOmRpZEhpZGVFeHRlbnNpb25UYWI6LgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5zcGVj
dG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisK
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6ZGlk
TmF2aWdhdGVFeHRlbnNpb25UYWIpOgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZE5hdmlnYXRlRXh0ZW5z
aW9uVGFiKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYik6
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZVRhYkZvckV4dGVuc2lvbik6CisgICAgICAg
IFN0YW5kYXJkaXplIG9uIHJldHVybmluZyB7cmVzdWx0OiB2YWx1ZX0gZm9yIHNob3dFeHRlbnNp
b25UYWIuCisKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyOjpzaG93RXh0ZW5zaW9uVGFiKToKKyAgICAgICAgU3RhbmRhcmRpemUgb24gcmV0dXJuaW5n
IHtyZXN1bHQ6IHZhbHVlfSBmb3Igc2hvd0V4dGVuc2lvblRhYi4KKyAgICAgICAgQWxzbywgdGhl
cmUncyBubyBuZWVkIHRvIGluc3BlY3QgdGhlIHJlc3VsdCB2YWx1ZSBpZiBpdCdzIG5vdCBhbiBl
cnJvci4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXI6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKToKKyAgICAgICAgQWRkIHBsdW1iaW5nLgorCiAy
MDIxLTEyLTA4ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2hvdyBjb3JyZWN0IGNvbnRlbnQgbWVudSBmb3IgaW1hZ2VzIHNlcnZpY2VzIGNoZXZy
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudC5oCmluZGV4IDI2Nzg4M2Q5OTI1MWUyZWI1ZWViNDkyMGM2YzAwNjA2NjViNmM5MzcuLmFh
MzIyNjUxNmU4ZmY1NjQ2OWY4OTJhYzgzM2ExZWY1ZWZlYTZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0xMjIsNiAr
MTIyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMo
KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
blRhYklEJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBj
b25zdCBVUkwmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRl
KGNvbnN0IFVSTCYpIHsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMjE4ZGY2YTE5MTEyOTQ4MTUzYTFk
YmY0OTVlZjU1ZWEwZjFlNmY3ZS4uOGFhZGFkMWZiYWVlMzg3ZTg5NzBhNjVmMWYyOTdlZjllZDJh
Zjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKQEAgLTcwNyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QK
ICAgICBtX2NsaWVudC0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9u
VGFiSUQpOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlkTmF2aWdhdGVFeHRl
bnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNp
b25UYWJJRCwgY29uc3QgU3RyaW5nJiBuZXdVUkxTdHJpbmcpCit7CisgICAgaWYgKCFtX2NsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LT5kaWROYXZpZ2F0ZUV4dGVu
c2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQsIHsgVVJMKCksIG5ld1VSTFN0cmlu
ZyB9KTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZShjb25zdCBTdHJpbmcmIG5ld1VSTFN0cmluZykKIHsKICAgICBpZiAoIW1fY2xpZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5o
CmluZGV4IDdiM2JhYWQ3MWYwZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNkMWFiYWUuLjJmN2UwNzM0
YzNhYjJjM2FkYWY2YTczMDAwN2E4M2M3MDU3MGJiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hv
d0V4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4
dGVuc2lvblRhYklEKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5n
JiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBk
aWROYXZpZ2F0ZUV4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBT
dHJpbmcmIGV4dGVuc2lvblRhYklELCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBpbnNw
ZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9y
PEpTQzo6SlNWYWx1ZT4gZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxl
bWVudCYgZXh0ZW5zaW9uRnJhbWUsIGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmlkbAppbmRleCA1MGUxNGRkYzBmYjAyMDhlYWVjYzM2ZWRhOWY0NjE0NjA1MWU4YTZlLi45ZmFm
NzU3MTJjNTQyNDY4NGRhYjFlYjUwYzk2N2U1YWJjOGVjYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYgKzEw
MCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRlbnNp
b25zOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRp
ZFNob3dFeHRlbnNpb25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5z
aW9uVGFiSUQpOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZp
bmVkIGRpZEhpZGVFeHRlbnNpb25UYWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcg
ZXh0ZW5zaW9uVGFiSUQpOworICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10g
dW5kZWZpbmVkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKERPTVN0cmluZyBleHRlbnNpb25JRCwg
RE9NU3RyaW5nIGV4dGVuc2lvblRhYklELCBET01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29uZGl0
aW9uYWw9SU5TUEVDVE9SX0VYVEVOU0lPTlNdIHVuZGVmaW5lZCBpbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUoRE9NU3RyaW5nIG5ld1VSTCk7CiAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRF
TlNJT05TXSBhbnkgZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVu
dCBleHRlbnNpb25GcmFtZSwgRE9NU3RyaW5nIHNjcmlwdFNvdXJjZSk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMK
aW5kZXggOTk1ZjdlOTc0OGM4MzA0YWVmMTBkNzZhY2UzYThiOGQ4MjMxOGE4Ni4uN2ZlYjQ1ZGM4
N2M0NjNkZjNjZjk1ZGQ5M2QwMGJiODM0ZGUzYzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9u
Q29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCkBAIC05Myw3ICs5
Myw3IEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgPSBjbGFzcyBXZWJJbnNw
ZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuCiAgICAgICAgIFdJLnRhYkJyb3dzZXIuYWRk
VGFiRm9yQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcsIHtzdXBwcmVzc0FuaW1hdGlvbnM6IHRy
dWV9KTsKIAogICAgICAgICAvLyBUaGUgY2FsbGluZyBjb252ZW50aW9uIGlzIHRvIHJldHVybiBh
biBlcnJvciBzdHJpbmcgb3IgYSByZXN1bHQgb2JqZWN0LgotICAgICAgICByZXR1cm4ge2V4dGVu
c2lvblRhYklEfTsKKyAgICAgICAgcmV0dXJuIHsicmVzdWx0IjogZXh0ZW5zaW9uVGFiSUR9Owog
ICAgIH0KIAogICAgIGV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKGV4dGVuc2lvbklELCBzY3Jp
cHRTb3VyY2UsIHtmcmFtZVVSTCwgY29udGV4dFNlY3VyaXR5T3JpZ2luLCB1c2VDb250ZW50U2Ny
aXB0Q29udGV4dH0gPSB7fSkKQEAgLTE4Myw2ICsxODMsMTAgQEAgV0kuV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uQ29udHJvbGxlciA9IGNsYXNzIFdlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIg
ZXh0ZW4KICAgICAgICAgfQogCiAgICAgICAgIHRhYkNvbnRlbnRWaWV3LnZpc2libGUgPSB0cnVl
OworCisgICAgICAgIC8vIENsaWVudHMgZXhwZWN0IHRvIGJlIGFibGUgdG8gdXNlIGV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIoKSB3aGVuIHRoaXMgbWV0aG9kCisgICAgICAgIC8vIHJldHVy
bnMsIHNvIHdhaXQgZm9yIHRoZSBleHRlbnNpb24gdGFiIHRvIGZpbmlzaCBpdHMgbG9hZGluZyBz
ZXF1ZW5jZS4gV3JhcCB0aGUgcmVzdWx0LgorICAgICAgICByZXR1cm4gdGFiQ29udGVudFZpZXcu
d2hlblBhZ2VBdmFpbGFibGUoKS50aGVuKChzb3VyY2VVUkwpID0+IHsgcmV0dXJuIHsicmVzdWx0
Ijogc291cmNlVVJMfTsgfSk7CiAgICAgfQogCiAgICAgaGlkZUV4dGVuc2lvblRhYihleHRlbnNp
b25UYWJJRCwgb3B0aW9ucyA9IHt9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qcwppbmRleCBiNWNlNTRkOTFhZDFiYThmOTkxYTI3Y2RkMzBmMTkzYjMwMTQ5ZTE1Li5hMDE4
M2QwNzZhMmVmYTZmNzE2ZGNiOGFkM2Y3MGRmMWIxYWE4MDM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQ
SS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JGcm9udGVuZEFQSS5qcwpAQCAtMjEwLDggKzIxMCwxMSBAQCBJbnNwZWN0b3JGcm9u
dGVuZEFQSSA9IHsKICAgICAgICAgcmV0dXJuIFdJLnNoYXJlZEFwcC5leHRlbnNpb25Db250cm9s
bGVyLnVucmVnaXN0ZXJFeHRlbnNpb24oZXh0ZW5zaW9uSUQpOwogICAgIH0sCiAKLSAgICAvLyBS
ZXR1cm5zIGEgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZSBpZiBhbiBlcnJvciBv
Y2N1cnJlZCwgb3RoZXJ3aXNlIGFuIG9iamVjdAotICAgIC8vIHdpdGggYW4gJ2V4dGVuc2lvblRh
YklEJyBrZXkgcmVwcmVzZW50aW5nIHRoZSB0YWIgaWRlbnRpZmllciBmb3IgdGhlIG5ld2x5IGNy
ZWF0ZWQgdGFiLgorICAgIC8vIFJldHVybnMgYSBzdHJpbmcgKFdJLldlYkluc3BlY3RvckV4dGVu
c2lvbi5FcnJvckNvZGUpIGlmIGFuIGVycm9yIG9jY3VycmVkIHRoYXQgcHJldmVudGVkIGNyZWF0
aW5nIGEgdGFiLgorICAgIC8vIFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYg
dGhlIGV2YWx1YXRpb24gY29tcGxldGVzIGFuZCByZWplY3RlZCBpZiB0aGVyZSB3YXMgYW4gaW50
ZXJuYWwgZXJyb3IuCisgICAgLy8gV2hlbiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGl0IHdp
bGwgYmUgZWl0aGVyOgorICAgIC8vIC0gcmVzb2x2ZWQgd2l0aCBhbiBvYmplY3QgY29udGFpbmlu
ZyBhICdyZXN1bHQnIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgdGFiIGlkZW50aWZpZXIgZm9y
IHRoZSBuZXcgdGFiLgorICAgIC8vIC0gcmVqZWN0ZWQgd2l0aCBhbiBvYmplY3QgY29udGFpbmlu
ZyBhbiAnZXJyb3InIGtleSBhbmQgdmFsdWUgdGhhdCBpcyB0aGUgZXhjZXB0aW9uIHRoYXQgd2Fz
IHRocm93biB3aGlsZSBldmFsdWF0aW5nIHNjcmlwdC4KICAgICBjcmVhdGVUYWJGb3JFeHRlbnNp
b24oZXh0ZW5zaW9uSUQsIHRhYk5hbWUsIHRhYkljb25VUkwsIHNvdXJjZVVSTCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5jcmVhdGVUYWJG
b3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIHRhYk5hbWUsIHRhYkljb25VUkwsIHNvdXJjZVVSTCk7
CkBAIC0yMzMsNyArMjM2LDExIEBAIEluc3BlY3RvckZyb250ZW5kQVBJID0gewogICAgICAgICBy
ZXR1cm4gV0kuc2hhcmVkQXBwLmV4dGVuc2lvbkNvbnRyb2xsZXIucmVsb2FkRm9yRXh0ZW5zaW9u
KGV4dGVuc2lvbklELCB7aWdub3JlQ2FjaGUsIHVzZXJBZ2VudCwgaW5qZWN0ZWRTY3JpcHR9KTsK
ICAgICB9LAogCi0gICAgLy8gUmV0dXJucyBhIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJv
ckNvZGUgaWYgYW4gZXJyb3Igb2NjdXJyZWQsIG90aGVyd2lzZSBub3RoaW5nLgorICAgIC8vIFJl
dHVybnMgYSBzdHJpbmcgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUpIGlmIGFu
IGVycm9yIG9jY3VycmVkIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHN3aXRjaCB0YWJzLgorICAgIC8v
IFJldHVybnMgYSBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgaWYgdGhlIHRhYiBjb3VsZCBiZSBz
aG93biBhbmQgcmVqZWN0ZWQgaWYgdGhlIHRhYiBjb3VsZCBub3QgYmUgc2hvd24uCisgICAgLy8g
V2hlbiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGl0IHdpbGwgYmUgZWl0aGVyOgorICAgIC8v
IC0gcmVzb2x2ZWQgd2l0aCBubyB2YWx1ZS4KKyAgICAvLyAtIHJlamVjdGVkIHdpdGggYW4gb2Jq
ZWN0IGNvbnRhaW5pbmcgYW4gJ2Vycm9yJyBrZXkgYW5kIHZhbHVlIHRoYXQgaXMgdGhlIGV4Y2Vw
dGlvbiB0aGF0IHdhcyB0aHJvd24gd2hpbGUgc2hvd2luZyB0aGUgdGFiLgogICAgIHNob3dFeHRl
bnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpCiAgICAgewogICAgICAgICByZXR1cm4gV0kuc2hhcmVk
QXBwLmV4dGVuc2lvbkNvbnRyb2xsZXIuc2hvd0V4dGVuc2lvblRhYihleHRlbnNpb25UYWJJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9X
ZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1dlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRW
aWV3LmpzCmluZGV4IDFiM2E5ODQwYzZjZjU0YmVjZmI0MzBiNmQ2MzgxY2JkM2E4YTEwOGYuLjQy
ZjhmMmE5YzkwNjFiMDE4NzkyMzFmNjAxZDg4ZjU4NjU2NzI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1dlYkluc3BlY3RvckV4dGVuc2lv
blRhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1dlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3LmpzCkBAIC00MCwx
MSArNDAsMTEgQEAgV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVudFZpZXcgPSBjbGFz
cyBXZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmkKICAgICAgICAgdGhpcy5fdGFiSW5m
byA9IHRhYkluZm87CiAgICAgICAgIHRoaXMuX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsKIAorICAg
ICAgICB0aGlzLl9pZnJhbWVGaW5pc2hlZEluaXRpYWxMb2FkID0gZmFsc2U7CisgICAgICAgIHRo
aXMuX3doZW5QYWdlQXZhaWxhYmxlUHJvbWlzZSA9IG5ldyBXSS5XcmFwcGVkUHJvbWlzZTsKKwog
ICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50ID0gdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKTsKICAgICAgICAgdGhpcy5faWZyYW1lRWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGhpcy5fZXh0ZW5zaW9uRnJhbWVEaWRMb2Fk
LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9pZnJhbWVFbGVtZW50LnNyYyA9IHRoaXMuX3Nv
dXJjZVVSTDsKLQotICAgICAgICB0aGlzLl9mcmFtZUNvbnRlbnREaWRMb2FkID0gZmFsc2U7CiAg
ICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC03Myw2ICs3MywxMSBAQCBXSS5XZWJJbnNwZWN0b3JF
eHRlbnNpb25UYWJDb250ZW50VmlldyA9IGNsYXNzIFdlYkluc3BlY3RvckV4dGVuc2lvblRhYkNv
bnRlbnRWaQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICB3aGVuUGFnZUF2YWls
YWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fd2hlblBhZ2VBdmFpbGFibGVQcm9t
aXNlLnByb21pc2U7CisgICAgfQorCiAgICAgYXR0YWNoZWQoKQogICAgIHsKICAgICAgICAgc3Vw
ZXIuYXR0YWNoZWQoKTsKQEAgLTEwOSwxMyArMTE0LDM1IEBAIFdJLldlYkluc3BlY3RvckV4dGVu
c2lvblRhYkNvbnRlbnRWaWV3ID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uVGFiQ29udGVu
dFZpCiAKICAgICBfZXh0ZW5zaW9uRnJhbWVEaWRMb2FkKCkKICAgICB7Ci0gICAgICAgIHRoaXMu
X2ZyYW1lQ29udGVudERpZExvYWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9tYXliZURpc3BhdGNo
RGlkU2hvd0V4dGVuc2lvblRhYigpOworICAgICAgICAvLyBCb3VuY2UgZnJvbSB0aGUgaW5pdGlh
bCBlbXB0eSBwYWdlIHRvIHRoZSByZXF1ZXN0ZWQgc291cmNlVVJMLgorICAgICAgICBpZiAoIXRo
aXMuX2lmcmFtZUZpbmlzaGVkSW5pdGlhbExvYWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2lmcmFt
ZUZpbmlzaGVkSW5pdGlhbExvYWQgPSB0cnVlOworICAgICAgICAgICAgV0kuc2hhcmVkQXBwLmV4
dGVuc2lvbkNvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYih0aGlzLl9leHRl
bnNpb25UYWJJRCwgYGRvY3VtZW50LmxvY2F0aW9uLnJlcGxhY2UoIiR7dGhpcy5fc291cmNlVVJM
fSIpO2ApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2ln
bmFsIHRoYXQgdGhlIHBhZ2UgaXMgYXZhaWxhYmxlIHNpbmNlIHdlIGFscmVhZHkgYm91bmNlZCB0
byB0aGUgcmVxdWVzdGVkIHBhZ2UuCisgICAgICAgIGlmICghdGhpcy5fd2hlblBhZ2VBdmFpbGFi
bGVQcm9taXNlLnNldHRsZWQpCisgICAgICAgICAgICB0aGlzLl93aGVuUGFnZUF2YWlsYWJsZVBy
b21pc2UucmVzb2x2ZSh0aGlzLl9zb3VyY2VVUkwpOworCisgICAgICAgIHRoaXMuX21heWJlRGlz
cGF0Y2hEaWROYXZpZ2F0ZUV4dGVuc2lvblRhYigpOworICAgIH0KKworICAgIGFzeW5jIF9tYXli
ZURpc3BhdGNoRGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0
aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
bGV0IHBheWxvYWQgPSBhd2FpdCBXSS5zaGFyZWRBcHAuZXh0ZW5zaW9uQ29udHJvbGxlci5ldmFs
dWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKHRoaXMuX2V4dGVuc2lvblRhYklELCAiZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiIpOworICAgICAgICBjb25zb2xlLmFzc2VydChwYXlsb2FkLnJlc3VsdCwg
IlNob3VsZCBiZSBhYmxlIHRvIHVud3JhcCBldmFsdWF0aW9uIGluIGV4dGVuc2lvbiB0YWIhIiwg
cGF5bG9hZC5yZXN1bHQpOworCisgICAgICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3Quc3Vw
cG9ydHNXZWJFeHRlbnNpb25zKQorICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmRp
ZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKHRoaXMuX2V4dGVuc2lvbi5leHRlbnNpb25JRCwgdGhpcy5f
ZXh0ZW5zaW9uVGFiSUQsIHBheWxvYWQucmVzdWx0KTsKICAgICB9CiAKICAgICBfbWF5YmVEaXNw
YXRjaERpZFNob3dFeHRlbnNpb25UYWIoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mcmFt
ZUNvbnRlbnREaWRMb2FkIHx8ICF0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQpCisgICAgICAgIGlm
ICghdGhpcy5lbGVtZW50LmlzQ29ubmVjdGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZEhvc3Quc3VwcG9ydHNXZWJFeHRlbnNpb25zKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lv
bkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVu
c2lvbkNsaWVudC5oCmluZGV4IDNhZjgzYjgyYTEzMTliNDVkZGE2ZDk2MWY1YTU4NjgwZjRkYjYz
NTIuLjNhNTE2NTZjNmQ4ZmJkZGU5OTk1ZjU3NzgwNzA0ZDk1MzYyYmY0ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9u
Q2xpZW50LmgKQEAgLTM3LDYgKzM3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uVGFiSUQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25U
YWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFdURjo6VVJMJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6OlVS
TCYpIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAppbmRleCA1MGNi
ZGFlNzMxZWU4N2E1ZWZhNmQ4N2I3OThjNGUyNDU5N2EzYmQzLi4xM2JjNzUyYTFhZGRlMjQxY2U1
MWU1NmVjNTBmZTlkNDMwYTA1YjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUu
aApAQCAtNTIsOCArNTIsMTcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAqLwogLSAodm9p
ZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBk
aWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllcjsKIAorLyoq
CisgKiBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gYSB0YWIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXh0
ZW5zaW9uIGhhcyBuYXZpZ2F0ZWQgdG8gYSBuZXcgVVJMLgorICogQHBhcmFtIGV4dGVuc2lvbiBU
aGUgZXh0ZW5zaW9uIHRoYXQgY3JlYXRlZCB0aGUgdGFiLgorICogQHBhcmFtIHRhYklkZW50aWZp
ZXIgSWRlbnRpZmllciBmb3IgdGhlIHRhYiB0aGF0IG5hdmlnYXRlZC4KKyAqIEBwYXJhbSBVUkwg
VGhlIG5ldyBVUkwgZm9yIHRoZSBleHRlbnNpb24gdGFiJ3MgcGFnZS4KKyAqLworLSAodm9pZClp
bnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBkaWRO
YXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKXRhYklkZW50aWZpZXIgbmV3VVJM
OihOU1VSTCAqKW5ld1VSTDsKKwogLyoqCiAgKiBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIGlu
c3BlY3RlZCBwYWdlIGhhcyBuYXZpZ2F0ZWQgdG8gYSBuZXcgVVJMLgorICogQHBhcmFtIGV4dGVu
c2lvbiBUaGUgZXh0ZW5zaW9uIHRoYXQgaXMgYmVpbmcgbm90aWZpZWQuCiAgKiBAcGFyYW0gdXJs
IFRoZSBuZXcgVVJMIGZvciB0aGUgaW5zcGVjdGVkIHBhZ2UuCiAgKi8KIC0gKHZvaWQpaW5zcGVj
dG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gaW5zcGVjdGVk
UGFnZURpZE5hdmlnYXRlOihOU1VSTCAqKXVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLmgKaW5kZXggMjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFmNWExNmNiZGFm
YS4uNzU4N2U3ZWNiZDQ0YTlkYjQ4N2Y0MmJhZDQ4OTExYjk1MTNhMTMxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29h
L0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gQVBJOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQKICAgICAgICAgdm9pZCBk
aWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWROYXZpZ2F0ZUV4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3Zl
cnJpZGU7CiAgICAgICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYp
IG92ZXJyaWRlOwogCiAgICAgICAgIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlJiBtX2luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlOwpAQCAtNjcsNiArNjgsNyBAQCBwcml2YXRlOgogICAgIHN0
cnVjdCB7CiAgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5zaW9uRGlkU2hvd1RhYldpdGhJZGVu
dGlmaWVyIDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRIaWRlVGFiV2l0
aElkZW50aWZpZXIgOiAxOworICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZE5hdmln
YXRlVGFiV2l0aElkZW50aWZpZXIgOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lv
bkluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2Ev
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggZGM2Nzcw
MGRkMTY3ZjVmYjQ0ZjJiY2FhOTcwZDcxZDBlZDVjYWY4ZC4uMTBjNzIzNGVlYjgwNDFhZDI2ZjNj
OGIxZDEwYTUwYzUwMWE0NjQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZS5tbQpAQCAtNDEsNiArNDEsNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICppbgogewogICAg
IG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRp
ZmllciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4
dGVuc2lvbjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMuaW5zcGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVU
YWJXaXRoSWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRl
bnNpb25EaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0aElk
ZW50aWZpZXI6bmV3VVJMOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVu
c2lvbkluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6
KV07CiAKICAgICBpbnNwZWN0b3JFeHRlbnNpb24tPl9leHRlbnNpb24tPnNldENsaWVudChtYWtl
VW5pcXVlUmVmPEluc3BlY3RvckV4dGVuc2lvbkNsaWVudD4oKnRoaXMpKTsKQEAgLTg2LDYgKzg3
LDE4IEBAIHZvaWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lv
bkNsaWVudDo6ZGlkSGlkZUV4dGVuc2lvblRhYihjCiAgICAgW2RlbGVnYXRlIGluc3BlY3RvckV4
dGVuc2lvbjptX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1faW5zcGVjdG9yRXh0ZW5zaW9u
LmdldCgpLmdldCgpIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjpleHRlbnNpb25UYWJJRF07CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNs
aWVudDo6ZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBuZXdVUkwpCit7CisgICAgaWYg
KCFtX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rv
ckV4dGVuc2lvbkRpZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2Rl
bGVnYXRlOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxl
Z2F0ZSBpbnNwZWN0b3JFeHRlbnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2lu
c3BlY3RvckV4dGVuc2lvbi5nZXQoKS5nZXQoKSBkaWROYXZpZ2F0ZVRhYldpdGhJZGVudGlmaWVy
OmV4dGVuc2lvblRhYklEIG5ld1VSTDpuZXdVUkxdOworfQorCiB2b2lkIEluc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZShjb25zdCBXVEY6OlVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9pbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNw
ZWN0ZWRQYWdlRGlkTmF2aWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5LmNwcAppbmRleCAxY2FmN2NiMDRiODAzNGM1NTBiZDNmOTY1YzVkNTAx
MTA1MjNlNzQ0Li5lODg2NjA4ZDE4NmY2NjNjNWU5ZGRlYWU0ZDgzM2IwYWNjNTg2NjBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAg
LTI2OCw2ICsyNjgsMjAgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3IKICAgICBleHRlbnNpb25D
bGllbnQtPmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIFdl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpkaWROYXZpZ2F0ZUV4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFdURjo6VVJMJiBu
ZXdVUkwpCit7CisgICAgYXV0byBpdCA9IG1fZXh0ZW5zaW9uQVBJT2JqZWN0TWFwLmZpbmQoZXh0
ZW5zaW9uSUQpOworICAgIGlmIChpdCA9PSBtX2V4dGVuc2lvbkFQSU9iamVjdE1hcC5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uPiBl
eHRlbnNpb24gPSBpdC0+dmFsdWU7CisgICAgYXV0byBleHRlbnNpb25DbGllbnQgPSBleHRlbnNp
b24tPmNsaWVudCgpOworICAgIGlmICghZXh0ZW5zaW9uQ2xpZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBleHRlbnNpb25DbGllbnQtPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lv
blRhYklELCBuZXdVUkwpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7
CiAgICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBjb3B5VG9WZWN0b3IobV9leHRlbnNpb25BUElP
YmplY3RNYXAudmFsdWVzKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5oCmluZGV4IGQxOTdjOWVhYzIwYjUyYzJkOTIzNWU2ZGEwNzdhOGQ2ZDZi
YTBhN2YuLjU3MWFmNjI3NDk3OGFiYjFhNWVmN2Y0YTMzOGYzYWM4NTJlMjNiM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02OCw2ICs2
OCw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eSBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7
CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBkaWROYXZp
Z2F0ZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25UYWJJRCYsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgaW5zcGVjdGVk
UGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiAgICAgLy8gTm90aWZpY2F0aW9ucy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA2NDMzMTQzMjRkZDVkMmMxNWY4MzFjYjM3MjY2YWQ4NjFiN2I4YTM1
Li40MmFhMzdmMGQ4ZjVjODY5ODNhOThhYzk1MDM4MDRkMzkxNWQzMmZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eSB7CiAgICAgRGlkU2hvd0V4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5z
aW9uSUQsIFN0cmluZyBleHRlbnNpb25UYWJJRCkKICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFiKFN0
cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklEKQorICAgIERpZE5hdmlnYXRl
RXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklELCBV
UkwgbmV3VVJMKQogICAgIEluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShVUkwgbmV3VVJMKQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGM4YWQzMTg2OTVkOWFjNWRkZGYyZjkxY2IyMjA1
NmUxYzY2YjZkYmMuLjNjZWVhZDg1NDQyYWJmMDUzYTU5OTQwODJkODliZTc5NzJlMDg0ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zMDYsNiArMzA2LDE0IEBAIHZvaWQgUmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25JRCYgZXh0CiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFi
KGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yVUk6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmIGV4dGVuc2lvbklELCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNp
b25UYWJJRCwgY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRy
b2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlk
TmF2aWdhdGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklELCBuZXdVUkwp
OworfQorCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdh
dGUoY29uc3QgVVJMJiBuZXdVUkwpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggMzZjNzAxMTNjZjRiN2Y5MjliMTRhYWFjOWVkNDU3NDc2
MWVkNTVkZS4uZDI5ODlhZGEzMTU4ZDJlN2NiNDU1N2E4OWM0YWM4YTU5ZjIwYjM1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0
b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuaApAQCAtMTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBv
cnRzV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkTmF2aWdhdGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVj
dG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmLCBjb25z
dCBVUkwmKSBvdmVycmlkZTsKICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25z
dCBVUkwmKSBvdmVycmlkZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGZhN2NjZDk0OTc5NjA1
MzJlMmMwNDk3MjM0NGQzZjMxZDc5M2I2MjcuLjhkNTRmMzU4MDBjNmZmMmFjNjE3ODRjZmE1NTQ4
NmRkZWI3ZDgxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zODAsNiArMzgwLDE0IEBAIHZvaWQgV2ViSW5z
cGVjdG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwg
Y29uc3QgU3RyaW5nCiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9u
VGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9y
VUk6OmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGNv
bnN0IFN0cmluZyYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIGlm
ICghbV9leHRlbnNpb25Db250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2V4dGVu
c2lvbkNvbnRyb2xsZXItPmRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRl
bnNpb25UYWJJRCwgbmV3VVJMKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSTo6aW5zcGVjdGVk
UGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQogewogICAgIGlmICghbV9leHRlbnNp
b25Db250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGY2ZWQ3MDRjZmFkY2UwOTRlMDk1MThlNTZmOTk2MWFj
YTE3ZTI0OGEuLjgzNmM4MDU4MmQ4NzZlNDU1YjkwNGYwYzMwNWU1YjMyMDUxYzAzZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
LmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1dlYkV4dGVu
c2lvbnMoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3Zl
cnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuY3BwCmluZGV4IDM5NjJmYzdkZWNkZDdhNWIyZTQyYzdhOGY0ZGY3YmFjYWFmNTU5YjEuLjQ3
Y2UzNjNjMGE4ZmFjYzU4YjBjYzc5Y2RlZWNiOTZjNWQ0MzRiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lk
IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6Y3JlYXRlVGFiRm9yRXh0ZW5zaW9u
KGNvbnN0IEluc3BlY3Rvcjo6RQogICAgICAgICB9CiAKICAgICAgICAgYXV0byogZnJvbnRlbmRH
bG9iYWxPYmplY3QgPSB3ZWFrVGhpcy0+bV9mcm9udGVuZENsaWVudC0+ZnJvbnRlbmRBUElEaXNw
YXRjaGVyKCkuZnJvbnRlbmRHbG9iYWxPYmplY3QoKTsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIGZv
dW5kUHJvcGVydHkgPSBvYmplY3RSZXN1bHQtPmdldChmcm9udGVuZEdsb2JhbE9iamVjdCwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGZyb250ZW5kR2xvYmFsT2JqZWN0LT52bSgpLCAiZXh0
ZW5zaW9uVGFiSUQiX3MpKTsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGZvdW5kUHJvcGVydHkgPSBv
YmplY3RSZXN1bHQtPmdldChmcm9udGVuZEdsb2JhbE9iamVjdCwgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGZyb250ZW5kR2xvYmFsT2JqZWN0LT52bSgpLCAicmVzdWx0Il9zKSk7CiAgICAg
ICAgIGlmICghZm91bmRQcm9wZXJ0eSB8fCAhZm91bmRQcm9wZXJ0eS5pc1N0cmluZygpKSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4
dGVuc2lvbkVycm9yOjpJbnRlcm5hbEVycm9yKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0z
NTcsMTEgKzM1NywxOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6
c2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVucwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGF1dG8gcGFyc2VkRXJyb3IgPSB3ZWFrVGhpcy0+cGFyc2VFeHRlbnNpb25FcnJv
ckZyb21FdmFsdWF0aW9uUmVzdWx0KHJlc3VsdCkpIHsKLSAgICAgICAgICAgIExPRyhJbnNwZWN0
b3IsICJJbnRlcm5hbCBlcnJvciBlbmNvdW50ZXJlZCB3aGlsZSBldmFsdWF0aW5nIHVwb24gdGhl
IGZyb250ZW5kOiAlcyIsIEluc3BlY3Rvcjo6ZXh0ZW5zaW9uRXJyb3JUb1N0cmluZygqcGFyc2Vk
RXJyb3IpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWUoKS5o
YXNfdmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gZXhjZXB0aW9uRGV0YWlscyA9IHJl
c3VsdC52YWx1ZSgpLmVycm9yKCk7CisgICAgICAgICAgICAgICAgTE9HKEluc3BlY3RvciwgIklu
dGVybmFsIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIHNob3dpbmcgZXh0ZW5zaW9uIHRhYiBhdCAl
czolZDolZDogJXMiLCBleGNlcHRpb25EZXRhaWxzLnNvdXJjZVVSTC51dGY4KCkuZGF0YSgpLCBl
eGNlcHRpb25EZXRhaWxzLmxpbmVOdW1iZXIsIGV4Y2VwdGlvbkRldGFpbHMuY29sdW1uTnVtYmVy
LCBleGNlcHRpb25EZXRhaWxzLm1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBMT0coSW5zcGVjdG9yLCAiSW50ZXJuYWwgZXJyb3IgZW5j
b3VudGVyZWQgd2hpbGUgc2hvd2luZyBleHRlbnNpb24gdGFiLiIpOworCiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZCgqcGFyc2VkRXJyb3IpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIC8vIElmIHRoaXMgYXNzZXJ0aW9uIGZh
aWxzLCB0aGVuIGEgYHJlc3VsdC5lcnJvcigpYCB3YXMgbm90IGhhbmRsZWQgYWJvdmUgYXMgZXhw
ZWN0ZWQuCisgICAgICAgIEFTU0VSVChyZXN1bHQuaGFzX3ZhbHVlKCkpOworCiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfSk7CiB9CkBAIC00NDQsNiArNDUyLDExIEBAIHZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWRIaWRlRXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHk6OkRpZEhpZGVFeHRlbnNpb25UYWIgeyBleHRlbnNpb25JRCwgZXh0
ZW5zaW9uVGFiSUQgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpkaWROYXZpZ2F0ZUV4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSUQsIGNvbnN0IFVSTCYgbmV3VVJMKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpEaWRO
YXZpZ2F0ZUV4dGVuc2lvblRhYiB7IGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCwgbmV3VVJM
IH0sIG1faW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYg
bmV3VVJMKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
clByb3h5OjpJbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUgeyBuZXdVUkwgfSwgbV9pbnNwZWN0b3JQ
YWdlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIu
aAppbmRleCA0YTc5N2UzZmNkNWI4NTdjMGU3MWZmMTg1ZWJlZjY2MDFhNzYxNjlmLi5iZDA3YTEw
NGEyMzkyNTQyMmVmZTlhMTU0MTcyNjhhNzQ4MTMwMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyLmgKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogICAgIC8v
IENhbGxiYWNrcyBmcm9tIHRoZSBmcm9udGVuZC4KICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25U
YWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uVGFiSUQmKTsKICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9y
OjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKTsKKyAgICB2
b2lkIGRpZE5hdmlnYXRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQm
LCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJiwgY29uc3QgVVJMJik7CiAgICAgdm9p
ZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjVmZDNmZmE1
OWMxODYwMjYxMTBkNzg2ZWI3MDAyMDg2M2U0YWM3MC4uNjcyOWE1NDI3NTY0OGVhZjNhOTBiYTFj
MGIzZmVmMGUyZDhkMWFiZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA4ICBCSiBCdXJnICA8YmJ1cmdA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdh
eSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgdG8gbm90aWZpZWQgd2hl
biBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM1CisgICAgICAgIDxyZGFyOi8vODYxMjM4OTk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUGF0cmljayBBbmdsZS4KKworICAgICAgICBBZGQgQVBJIHRl
c3QgY292ZXJhZ2UgZm9yIC1pbnNwZWN0b3JFeHRlbnNpb246ZGlkTmF2aWdhdGVUYWJXaXRoSWRl
bnRpZmllcjpuZXdVUkw6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIERy
aXZlLWJ5LCBmaXggYW4gb3V0ZGF0ZWQgY29tcGxldGlvbiBoYW5kbGVyIHR5cGUgc2lnbmF0dXJl
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZE5hdmlnYXRlVGFiV2l0aElkZW50
aWZpZXI6bmV3VVJMOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIEFkZCBhIHRlc3QgY2Fz
ZSB3aGljaCBleGVyY2lzZXMgdGhlIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisKIDIwMjEtMTItMDgg
IEt5bGUgUGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFj
Q2F0YWx5c3RdIFVwZGF0ZSBoZWFkZXIgc2VhcmNoIHBhdGhzIGZvciBBTkdMRSBDYXRhbHlzdApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCmluZGV4IDg3M2ExMGJhZWVi
ZWIwZjA0ZWNjNzg3MGRhMmY5MGU1M2Q0MTJjYjAuLjUxOWIzZjM2NzU1MTFhNjc3ZGEyYzQzZmQ2
M2YyZGJiMWI4NjY5NTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUu
bW0KQEAgLTQzLDYgKzQzLDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogc3RhdGlj
IFJldGFpblB0cjxOU1VSTD4gc2hhcmVkTmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uOworc3RhdGljIGJv
b2wgZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQ7CiAKIEBpbnRlcmZhY2UgVUlEZWxl
Z2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJ
RGVsZWdhdGU+CiBAZW5kCkBAIC04NCw2ICs4NSwxMSBAQCAtICh2b2lkKWluc3BlY3RvckV4dGVu
c2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRl
bgogICAgIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lk
KWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRp
ZE5hdmlnYXRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmllciBuZXdV
Ukw6KE5TVVJMICopbmV3VVJMCit7CisgICAgZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxs
ZWQgPSB0cnVlOworfQorCiAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9y
RXh0ZW5zaW9uICopZXh0ZW5zaW9uIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZTooTlNVUkwgKilu
ZXdVUkwKIHsKICAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0cnVlOwpA
QCAtMjM0LDQgKzI0MCw5OCBAQCBURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUsIElu
c3BlY3RlZFBhZ2VOYXZpZ2F0ZWRDYWxsYmFja3MpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOwogfQogCisvLyBGSVhNRTogUmUtZW5hYmxl
IHRoaXMgdGVzdCBmb3IgZGVidWcgb25jZSB3ZWJraXQub3JnL2IvMjMxODQ3IGlzIGZpeGVkLgor
I2lmICFkZWZpbmVkKE5ERUJVRykKK1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwg
RElTQUJMRURfRXh0ZW5zaW9uVGFiTmF2aWdhdGVkQ2FsbGJhY2tzKQorI2Vsc2UKK1RFU1QoV0tJ
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgRXh0ZW5zaW9uVGFiTmF2aWdhdGVkQ2FsbGJhY2tz
KQorI2VuZGlmCit7CisgICAgcmVzZXRHbG9iYWxTdGF0ZSgpOworCisgICAgLy8gSG9vayB1cCB0
aGUgdGVzdC1yZXNvdXJjZTogaGFuZGxlciBzbyB0aGF0IHdlIGNhbiBuYXZpZ2F0ZSB0byBhIGRp
ZmZlcmVudCB0ZXN0IGZpbGUuCisgICAgaWYgKCFzaGFyZWRVUkxTY2hlbWVIYW5kbGVyKQorICAg
ICAgICBzaGFyZWRVUkxTY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RJbnNwZWN0b3JVUkxT
Y2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICB3ZWJWaWV3
Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9
IFlFUzsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzaGFy
ZWRVUkxTY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAInRlc3QtcmVzb3VyY2UiXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1VJRGVs
ZWdhdGVGb3JUZXN0aW5nSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUgbmV3XSk7CisKKyAgICBb
d2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOworCisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0
YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgLy8gUmVnaXN0ZXIgdGhlIHRlc3QgZXh0
ZW5zaW9uLgorICAgIGF1dG8gZXh0ZW5zaW9uSUQgPSBbTlNVVUlEIFVVSURdLlVVSURTdHJpbmc7
CisgICAgYXV0byBleHRlbnNpb25CdW5kbGVJZGVudGlmaWVyID0gQCJjb20uYXBwbGUud2Via2l0
LlRoaXJkRXh0ZW5zaW9uIjsKKyAgICBhdXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1lID0gQCJUaGly
ZEV4dGVuc2lvbiI7CisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAg
W1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklE
IGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZpZXI6ZXh0ZW5zaW9uQnVuZGxlSWRlbnRpZmllciBkaXNw
bGF5TmFtZTpleHRlbnNpb25EaXNwbGF5TmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3Ig
KmVycm9yLCBfV0tJbnNwZWN0b3JFeHRlbnNpb24gKmV4dGVuc2lvbikgeworICAgICAgICBFWFBF
Q1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb24pOworICAg
ICAgICBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBleHRlbnNpb247CisKKyAgICAgICAgcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBhdXRvIGV4dGVu
c2lvbkRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0
aW5nIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gc2V0RGVsZWdhdGU6ZXh0
ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgYXV0byBiYXNlVVJMID0gW05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9o
ZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6YmFzZVVSTF07
CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAg
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworICAg
IEVYUEVDVF9OU19FUVVBTChzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb24uZ2V0KCkuYWJzb2x1
dGVTdHJpbmcsIGJhc2VVUkwuYWJzb2x1dGVTdHJpbmcpOworICAgIGluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZVdhc0NhbGxlZCA9IGZhbHNlOworCisgICAgLy8gQ3JlYXRlIGFuIGV4dGVuc2lvbiB0
YWIuCisgICAgYXV0byBpY29uVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291
cmNlOi8vVGhpcmRFeHRlbnNpb24vSW5zcGVjdG9yRXh0ZW5zaW9uLVRhYkljb24tMzB4MzAucG5n
Il07CisgICAgYXV0byBzb3VyY2VVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3QtcmVz
b3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwi
XTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIFtzaGFyZWRJ
bnNwZWN0b3JFeHRlbnNpb24gY3JlYXRlVGFiV2l0aE5hbWU6QCJUaGlyZEV4dGVuc2lvbi1UYWIi
IHRhYkljb25VUkw6aWNvblVSTCBzb3VyY2VVUkw6c291cmNlVVJMIGNvbXBsZXRpb25IYW5kbGVy
Ol4oTlNFcnJvciAqZXJyb3IsIE5TU3RyaW5nICpleHRlbnNpb25UYWJJZGVudGlmaWVyKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX05PVF9OVUxMKGV4dGVu
c2lvblRhYklkZW50aWZpZXIpOworICAgICAgICBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVy
ID0gZXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXND
YWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9
IGZhbHNlOworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93RXh0ZW5zaW9uVGFiV2l0aElk
ZW50aWZpZXI6c2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKwor
ICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKKworICAg
IHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOworICAgIGV4dGVuc2lvblRhYkRpZE5h
dmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgYXV0byBuZXdVUkwgPSBbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInRlc3QtcmVzb3VyY2U6Ly9UaGlyZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtcGFnZS5odG1sIl07CisgICAgW3NoYXJlZEluc3BlY3RvckV4dGVuc2lvbiBldmFs
dWF0ZVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5sb2NhdGlvbi5y
ZXBsYWNlKFwiJUBcIikiLCBuZXdVUkxdIGluVGFiV2l0aElkZW50aWZpZXI6c2hhcmVkRXh0ZW5z
aW9uVGFiSWRlbnRpZmllci5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9y
LCBpZCByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworCisgICAgICAgIHBl
bmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZXh0ZW5zaW9uVGFiRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworCisgICAg
Ly8gVW5yZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAgcGVuZGluZ0NhbGxiYWNrV2Fz
Q2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHVucmVnaXN0ZXJFeHRl
bnNpb246c2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7Cit9
CisKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>