<?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>184678</bug_id>
          
          <creation_ts>2018-04-16 19:09:37 -0700</creation_ts>
          <short_desc>REGRESSION (r229831): CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab</short_desc>
          <delta_ts>2018-04-17 11:13:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>180568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415000</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-16 19:09:37 -0700</bug_when>
    <thetext>CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415001</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-16 19:09:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/39422122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415018</commentid>
    <comment_count>2</comment_count>
      <attachid>338074</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-16 20:54:57 -0700</bug_when>
    <thetext>Created attachment 338074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415139</commentid>
    <comment_count>3</comment_count>
      <attachid>338114</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 08:36:48 -0700</bug_when>
    <thetext>Created attachment 338114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415154</commentid>
    <comment_count>4</comment_count>
      <attachid>338114</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-04-17 08:53:13 -0700</bug_when>
    <thetext>Comment on attachment 338114
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:103
&gt; +    DecidePolicyForNavigationActionSync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -&gt; (uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional&lt;WebKit::WebsitePoliciesData&gt; websitePolicies)

I think it would look a lot nicer if this were delayed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415155</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 08:55:02 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 338114 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338114&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:103
&gt; &gt; +    DecidePolicyForNavigationActionSync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -&gt; (uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional&lt;WebKit::WebsitePoliciesData&gt; websitePolicies)
&gt; 
&gt; I think it would look a lot nicer if this were delayed.

Not very familiar with this but I&apos;ll figure it out from existing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415169</commentid>
    <comment_count>6</comment_count>
      <attachid>338124</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 09:07:14 -0700</bug_when>
    <thetext>Created attachment 338124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415170</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 09:07:38 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 338114 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338114&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:103
&gt; &gt; +    DecidePolicyForNavigationActionSync(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, struct WebKit::FrameInfoData originatingFrameInfoData, uint64_t originatingPageID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -&gt; (uint64_t newNavigationID, enum WebCore::PolicyAction policyAction, WebKit::DownloadID downloadID, std::optional&lt;WebKit::WebsitePoliciesData&gt; websitePolicies)
&gt; 
&gt; I think it would look a lot nicer if this were delayed.

Done, much nicer / simpler indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415171</commentid>
    <comment_count>8</comment_count>
      <attachid>338124</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 09:12:58 -0700</bug_when>
    <thetext>Comment on attachment 338124
Patch

Alex pointed out an issue offline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415173</commentid>
    <comment_count>9</comment_count>
      <attachid>338125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 09:18:02 -0700</bug_when>
    <thetext>Created attachment 338125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415186</commentid>
    <comment_count>10</comment_count>
      <attachid>338125</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-04-17 09:51:44 -0700</bug_when>
    <thetext>Comment on attachment 338125
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3952
&gt; +    // If the client did not respond synchronously, proceed with the load.
&gt; +    if (auto syncNavigationActionPolicyReply = WTFMove(m_syncNavigationActionPolicyReply))
&gt; +        syncNavigationActionPolicyReply-&gt;send(navigationID, PolicyAction::Use, { }, { });

What should we do with the call to WebPageProxy::receivedPolicyDecision which will happen later, then?  I think we should do nothing there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415206</commentid>
    <comment_count>11</comment_count>
      <attachid>338125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 10:40:40 -0700</bug_when>
    <thetext>Comment on attachment 338125
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3952
&gt;&gt; +        syncNavigationActionPolicyReply-&gt;send(navigationID, PolicyAction::Use, { }, { });
&gt; 
&gt; What should we do with the call to WebPageProxy::receivedPolicyDecision which will happen later, then?  I think we should do nothing there.

If we do not do anything here then the WebProcess will be hung for an undetermined duration, while we await the client response. I think we tried this in the past and this caused regression, no?

I want to restore pre-r229831 behavior, where the load would keep going if the client does not answer synchronously. I am trying to fix a regression from r229831 here and restoring pre-r229831 behavior is the safest bet. What you are suggesting seems to be another behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415208</commentid>
    <comment_count>12</comment_count>
      <attachid>338125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-17 10:42:30 -0700</bug_when>
    <thetext>Comment on attachment 338125
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3952
&gt;&gt;&gt; +        syncNavigationActionPolicyReply-&gt;send(navigationID, PolicyAction::Use, { }, { });
&gt;&gt; 
&gt;&gt; What should we do with the call to WebPageProxy::receivedPolicyDecision which will happen later, then?  I think we should do nothing there.
&gt; 
&gt; If we do not do anything here then the WebProcess will be hung for an undetermined duration, while we await the client response. I think we tried this in the past and this caused regression, no?
&gt; 
&gt; I want to restore pre-r229831 behavior, where the load would keep going if the client does not answer synchronously. I am trying to fix a regression from r229831 here and restoring pre-r229831 behavior is the safest bet. What you are suggesting seems to be another behavior.

To answer your question, my understanding is that when the client responds asynchronously, WebPageProxy::receivedPolicyDecision() will send the WebPage::DidReceivePolicyDecision IPC to the WebProcess, which the WebProcess will ignore because there is no longer any listener for this ListenerID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415216</commentid>
    <comment_count>13</comment_count>
      <attachid>338125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 11:13:55 -0700</bug_when>
    <thetext>Comment on attachment 338125
Patch

Clearing flags on attachment: 338125

Committed r230721: &lt;https://trac.webkit.org/changeset/230721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415217</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 11:13:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338074</attachid>
            <date>2018-04-16 20:54:57 -0700</date>
            <delta_ts>2018-04-17 08:36:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184678-20180416205456.patch</filename>
            <type>text/plain</type>
            <size>35877</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5OWQzNzAwN2ExMTk1
MGU3MmU3MDI5MWQ0YzExMTRlMDQ0OWIwZC4uMTQ4YTlmNDI3NmQ0Y2M3MzMxNzQzYmQyNDE3YWVk
ZjJkOTNjMWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjIyOTgz
MSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRseSBvcGVu
cyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDY3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzk0MjIxMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJhbWVudCBuYXZpZ2F0aW9ucyBuZWVkIHRvIGhhcHBlbiBzeW5jaHJv
bm91c2x5IGZvciBXZWItY29tcGF0aWJpbGl0eS4gQmVjYXVzZSBvZiB0aGlzLAorICAgICAgICBy
MjI1NjU3IGFkZGVkIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgaWYgdGhlIGNsaWVudCBkb2VzIG5v
dCBtYWtlIHRoZSBuYXZpZ2F0aW9uIHBvbGljeQorICAgICAgICBkZWNpc2lvbiBzeW5jaHJvbm91
c2x5IGZvciBmcmFtZW50IG5hdmlnYXRpb25zLCB0aGVuIHdlJ2xsIHN0b3Agd2FpdGluZyBmb3Ig
dGhlIGNsaWVudAorICAgICAgICBhbmQgcHJvY2VlZCB3aXRoIHRoZSBuYXZpZ2F0aW9uLiBIb3dl
dmVyLCByMjI5ODMxIG1ha2UgdGhlIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAg
IElQQyBkZWNpc2lvbiwgbWVhbmluZyB0aGF0IGV2ZW4gaWYgdGhlIGNsaWVudCByZXNwb25kcyBz
eW5jaHJvbm91c2x5LCBpdCB3b3VsZCBiZQorICAgICAgICBhc3luY2hyb25vdXNseSBmcm9tIFdl
YkNvcmUncyBwb2ludCBvZiB2aWV3LiBBcyBhIHJlc3VsdCwgd2Ugd291bGQgYWx3YXlzIGlnbm9y
ZSB0aGUKKyAgICAgICAgY2xpZW50J3MgcG9saWN5IGRlY2lzaW9uIHdoZW4gZG9pbmcgYSBmcmFn
bWVudCBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMgaXMgYW4gaXNzdWUgb24gaWNsb3VsZC5j
b20gYmVjYXVzZSB0aGUgd2ViLWFwcCBsaW5rcyBhcmUgZnJhZ21lbnQgVVJMcy4gV2hlbiB5b3UK
KyAgICAgICAgQ01EK2NsaWNrIG9uZSBvZiB0aGVzZSBsaW5rLCB3ZSBkbyB0aGUgbmF2aWdhdGlv
biBwb2xpY3kgY2hlY2suIEFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgICAgY2hlY2ssIFNhZmFy
aSByZXNwb25kcyBJR05PUkUgdG8gdGhlIHBvbGljeSBkZWNpc2lvbiBhbmQgaW5zdGVhZCBkZWNp
ZGVzIHRvIGxvYWQgdGhlCisgICAgICAgIGxpbmsgaW4gYSBuZXcgdGFiIChiZWNhdXNlIENNRCBr
ZXkgaXMgcHJlc3NlZCkuIER1ZSB0byB0aGUgYnVnIG1lbnRpb25lZCBhYm92ZSwgd2UKKyAgICAg
ICAgd291bGQgbm90IG9iZXkgdGhlIElHTk9SRSBwb2xpY3kgZGVjaXNpb24gZnJvbSBTYWZhcmkg
YW5kIGxvYWQgdGhlIGxpbmsgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgdGFiLCBldmVuIHRob3Vn
aCBTYWZhcmkgd291bGQgYWxyZWFkeSBiZSBsb2FkaW5nIGl0IGluIGEgbmV3IHRhYi4KKworICAg
ICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgSSByZWludHJvZHVjZWQgYSBzeW5jaHJvbm91cyBj
b2RlIHBhdGggZm9yIG5hdmlnYXRpb24gcG9saWN5CisgICAgICAgIGRlY2lzaW9uIG1ha2luZywg
YmFja2VkIGJ5IHN5bmNocm9ub3VzIElQQy4gVGhpcyBzeW5jaHJvbm91cyBjb2RlIHBhdGggaXMg
bm93IHVzZWQgZm9yCisgICAgICAgIGZyYWdtZW50IG5hdmlnYXRpb25zIHRvIHJlc3RvcmUgcHJl
LXIyMjk4MzEgYmVoYXZpb3IuIElmIHRoZSBjbGllbnQgZG9lcyBub3QgYW5zd2VyCisgICAgICAg
IHN5bmNocm9ub3VzbHksIHdlJ2xsIHByb2NlZWQgd2l0aCB0aGUgbmF2aWdhdGlvbiBhbnl3YXks
IGFzIHdhcyBoYXBwZW5pbmcgcHJlLXIyMjk4MzEuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bik6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNo
ZWNrZXIuaDoKKwogMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgbW9yZSBXaW5kb3dQcm94eS1yZWxhdGVkIGxvZ2ljIGZyb20gU2NyaXB0
Q29udHJvbGxlciB0byBXaW5kb3dQcm94eUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTA3YjAwZTdj
YzVhNGE4YzJmMzliZDM5NGU3YjJiZWE5ODUwYjcxNS4uMjg5OTA0NGM5ZDA5NDdkMjFmZGE3N2Zl
ZDkwZjQzODBlZTc1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wNC0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
Mjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkg
b3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlLWludHJvZHVjZSBzeW5jaHJvbm91cyBjb2RlIHBhdGggd2hp
Y2ggZXhpc3RlZCBwcmUtcjIyOTgzMSBhbmQgdXNlIGl0IGZvciBmcmFnbWVudCBuYXZpZ2F0aW9u
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorCiAyMDE4LTA0LTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRpb246IGFkZCBTUEkgdG8gdGVybWluYXRlIGF1dG9tYXRp
b24gc2Vzc2lvbiBhbmQgZGlzY29ubmVjdCB0aGUgcmVtb3RlIGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY2YmNmZmFiOWMyZjQ2MjBmYzJhYjBjZTY5N2RlZTE4YTMyY2YwMWYu
LjdjMWE0M2Y5NTRiODY2ZjhjNzcxZWRjZmY5MWUzMzEzNTcxMzUxYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQt
Y2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBs
aW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBuZXcgcGFyYW1ldGVyIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKwogMjAxOC0wNC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdpbmRvd1Byb3h5IGhhbmRsaW5nIG91dCBvZiBTY3Jp
cHRDb250cm9sbGVyIGFuZCBpbnRvIGEgbmV3IGNsYXNzIG93bmVkIGJ5IEFic3RyYWN0RnJhbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAzMDE4ZmY2OTE1NTk2YjRkM2Q1OGFhMGQ2
Zjk1OTc4MjMxMGExY2M5Li40NmMwZjdhMjFjZWY2OTUzNTFlMTdjM2ZkNzUzYWQzZGEyNGIzNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQt
MTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxpbmsgdW5leHBlY3Rl
ZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJyZW50IHRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njc4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQyMjEyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHBhcmFtZXRlciB0byBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA0LTEyICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBU
dXJuIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlvbnMgYXMgV2ViIEFuaW1hdGlvbnMg
b24gYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAx
ZWQzY2IxNDFhYjM3NDFkMzBhMDhhMzZlZWY1MjRlNWQwYWVmMGY4Li5iNjFiMjZmZTExNWE0M2I0
YmQ5NjI4MGFjYTdiZjZhZGQ3MTM5ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhCiB7CiB9
CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBib29sLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCit2b2lkIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDA3YzMyYjhjM2VlNzY5MTcwYjJkNWVhNTExNWMzMzljYmNlOGE0OTAuLjM0YTUw
OGFiNThjNmQ2N2FkZTIzNTc3OTYwM2Q0N2Q5ZDQyM2E5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTUsNyArOTUsNyBAQCBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9h
ZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1v
ZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDg2M2Q1OWM3ZDRhOGQyMDFlMTMzMDY0ZmIwZmNjZGQwMjFkZWQz
NGYuLjQwOTg1MGE5ZDYxN2U4NGI0NzM3ZmEyYzg2OGI2YTA4YWEzMDhjYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI2MCwxMCArMTI2MCw2IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OmlzU3RvcExvYWRpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
RGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7
CiB9CiAKLXN0cnVjdCBTaGFyZWRCb29sIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQm9vbD4g
ewotICAgIGJvb2wgdmFsdWUgeyBmYWxzZSB9OwotfTsKLQogdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgRnJhbWVMb2FkVHlwZSBuZXdMb2FkVHlwZSwgRXZlbnQqIGV2ZW50LCBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEzMzYsMTcgKzEzMzIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+
c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5
Q2hlY2tlcigpLnN0b3BDaGVjaygpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5
cGUobmV3TG9hZFR5cGUpOwotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0g
YWRvcHRSZWYoKm5ldyBTaGFyZWRCb29sKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNr
TmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGZhbHNlIC8qIGRpZFJl
Y2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0
YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9u
SGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlmICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQt
PnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZ
ZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICghY29tcGxl
dGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlZC0+dmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9s
bEFmdGVyTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKHJlcXVlc3QpLCB0cnVlKTsKLSAgICAgICAg
fQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KSwgZmFsc2UgLyogZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgKi8s
IG9sZERvY3VtZW50TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsIFt0aGlzLCBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZv
cm1TdGF0ZSosIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgICAgICBj
b250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3Vs
ZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICB9LCBQb2xpY3lEZWNp
c2lvbk1vZGU6OlN5bmNocm9ub3VzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUx
MiwxNyArMTUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXJDYWxsZWQgPSBhZG9wdFJlZigqbmV3IFNoYXJlZEJvb2wpOwotICAgICAgICBwb2xp
Y3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PnJlcXVlc3QoKSksIGZhbHNlIC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGRE
b2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBt
YWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9y
bVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlm
ICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250
aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgaWYgKCFjb21wbGV0aW9uSGFuZGxlckNhbGxlZC0+dmFsdWUpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLT52YWx1ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGxvYWRlci0+cmVx
dWVzdCgpLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
YXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSksIGZhbHNl
IC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQo
KSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqLCBTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFm
dGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250
aW51ZTo6WWVzKTsKKyAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYTA0NDE5YzdjMzhmMTdhODE1NzdhZGVjZGI1Njk5YjNiZGQ1MzFk
ZC4uM2RhOTBmMjc0MWJmZWQwZWU5MjNmN2U5ZTIzMDVlNDljYzViYjA3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKIGNsYXNzIFdpZGdldDsKIAorZW51bSBjbGFz
cyBQb2xpY3lEZWNpc2lvbk1vZGU7CiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIAogdHlw
ZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IEZyYW1lUG9saWN5RnVuY3Rp
b247CkBAIC0xOTAsNyArMTkxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlk
UmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApp
bmRleCAzNzAyNTgwYzNkMmI5Nzg5MWJkYTBhMDI2NDExYzM3MTBhMGU3ODgwLi44MmQ2ZjY5Nzg2
MWU0YmYzOTZjMjNmMDU4OWQ0MDgzZjRiNzJlODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGJvb2wgZGlk
CiAgICAgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdURk1vdmUobmV3UmVxdWVzdCksIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCksIG51bGxwdHIsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBk
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRm9ybVN0
YXRlKiBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lz
aW9uTW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dl
cmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0xNDksNyArMTQ5
LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBkaWRSZWMKICAgICBtX2RlbGVnYXRlSXNEZWNpZGluZ05h
dmlnYXRpb25Qb2xpY3kgPSB0cnVlOwogICAgIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IGFj
dGlvbi5kb3dubG9hZEF0dHJpYnV0ZSgpLmlzRW1wdHkoKSA/IG51bGxBdG9tKCkgOiBhY3Rpb24u
ZG93bmxvYWRBdHRyaWJ1dGUoKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdENvcHkgPSBy
ZXF1ZXN0OwotICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVxdWVzdCwgZGlkUmVjZWl2ZVJlZGlyZWN0
UmVzcG9uc2UsIGZvcm1TdGF0ZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiks
IHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihm
b3JtU3RhdGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUp
XShQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rp
b24sIHJlcXVlc3QsIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBmb3JtU3RhdGUsIHBvbGlj
eURlY2lzaW9uTW9kZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiksIHJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihmb3JtU3Rh
dGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUpXShQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5kaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCk7CiAKICAgICAg
ICAgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5ID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCAyZmRiMjUwMjE5NTZhNTUwMTljNjcyNzNk
ZWYyZjgxMjI5NThkNDk5Li5iMTZjMWVlMjU5NGRkN2RiMTU3ZTQzZWU0ZDgzOTZmNmQ3NWE3Mzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTU2LDYgKzU2LDggQEAg
ZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7CiAgICAgRm9yU3VzcGVuc2lvbgogfTsKIAorZW51
bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07
CisKIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsK
IHVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUpPjsK
IApAQCAtNjUsNyArNjcsNyBAQCBjbGFzcyBQb2xpY3lDaGVja2VyIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICB2b2lkIGNoZWNrTmF2aWdhdGlv
blBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRG9jdW1lbnRMb2FkZXIqLCBGb3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25G
dW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVl
c3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqLCBG
b3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmLCBQb2xpY3lEZWNp
c2lvbk1vZGUgPSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgdm9pZCBj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogICAg
IHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTmV3V2lu
ZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWY3Y2VjYTUzMjE4N2Q3ZDllYzI1NWNiYzJlOTBjZDFlMzg1
NWI5My4uZGZiNGU4OWI1OGVkZjYxOWViNGI1YWU4MTkyOTkxZjc2ZDBhNjY1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzkyLDYgKzIzOTIsMTQgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFj
dGlvbiwgV2ViRnJhbWVQcm94eSYgZnIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChtX2lu
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpIHsKKyAgICAgICAgbV9zeW5jTmF2
aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbklzVmFsaWQgPSB0cnVlOworICAgICAgICBtX3N5bmNO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWN0aW9uID0gYWN0aW9uOworICAgICAgICBtX3N5bmNOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWRJRCA9IGRvd25sb2FkSUQ7CisgICAgICAgIG1fc3lu
Y05hdmlnYXRpb25BY3Rpb25Qb2xpY3lXZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZS5mcmFtZUlE
KCksIGxpc3RlbmVySUQsIGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpIDogMCwgZG93bmxvYWRJRCwgd2Vic2l0ZVBvbGljaWVzKSwgbV9wYWdlSUQpOwogfQog
CkBAIC0zOTM1LDYgKzM5NDMsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICAgICBtX3No
b3VsZFN1cHByZXNzQXBwTGlua3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSBmYWxz
ZTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCB1aW50NjRfdCYgbmV3TmF2aWdhdGlvbklELCBXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24mIHBvbGljeUFjdGlvbiwgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgc3RkOjpvcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiYgd2Vic2l0ZVBvbGljaWVzKQoreworICAgIEFTU0VSVCgh
bV9pbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKTsKKyAgICBtX2luRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMgPSB0cnVlOworICAgIG1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBY3Rpb25Jc1ZhbGlkID0gZmFsc2U7CisKKyAgICBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWVJbmZv
RGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0
KSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworCisgICAgbV9pbkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jID0gZmFsc2U7CisgICAgaWYgKG1fc3luY05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lBY3Rpb25Jc1ZhbGlkKSB7CisgICAgICAgIHBvbGljeUFjdGlvbiA9IG1fc3luY05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBY3Rpb247CisgICAgICAgIGRvd25sb2FkSUQgPSBtX3N5bmNOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWRJRDsKKyAgICAgICAgd2Vic2l0ZVBvbGljaWVzID0g
V1RGTW92ZShtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5V2Vic2l0ZVBvbGljaWVzKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgcG9saWN5QWN0aW9uID0gV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpV
c2U7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGVkYjgzNjY2NTM1MTI0MzM4MWQzNjUyNjdmMTVkMDk2YTVi
NmYzMGMuLjRiYmUzYTc0MjY1MzU0MGFiZTk5NGI2ZWZhNTM2YTJmMGM0NTdiMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzY5LDYgKzEzNjksNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklE
KTsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29u
c3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QmIG5ld05hdmln
YXRpb25JRCwgV2ViQ29yZTo6UG9saWN5QWN0aW9uJiwgRG93bmxvYWRJRCYsIHN0ZDo6b3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE5Mjgs
NiArMTkyOSwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0luUHJpbnRpbmdNb2RlIHsgZmFs
c2UgfTsKICAgICBib29sIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24geyBmYWxzZSB9
OwogCisgICAgLy8gU3luY2hyb25vdXMgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24uCisgICAg
Ym9vbCBtX2luRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbklzVmFsaWQgeyBmYWxz
ZX07CisgICAgV2ViQ29yZTo6UG9saWN5QWN0aW9uIG1fc3luY05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lBY3Rpb24geyBXZWJDb3JlOjpQb2xpY3lBY3Rpb246OlVzZSB9OworICAgIERvd25sb2FkSUQg
bV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkSUQgeyAwIH07CisgICAgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
V2Vic2l0ZVBvbGljaWVzOworCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0OwogICAgIGJvb2wgbV9zaG91bGRTdXBwcmVzc0FwcExp
bmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRmYjVh
OWI1YjMyMmE5MDNkY2NkOTFkMmRhNGU2NzQ2ZGYwNzViZjMuLjRkOTZjNWIxZDNmZDQ2OTEyNGFj
OWI5MDI3ZGU1NGQ3MzQ0MjY2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwMCw2ICsxMDAsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5h
dGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpIC0+ICh1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIGVudW0g
V2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgV2ViS2l0OjpEb3dubG9hZElEIGRv
d25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJz
aXRlUG9saWNpZXMpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAg
IFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGMyYjEwNDk1NjdhOTU5NjUzNjVhNjM4MjAxNTkzZTRk
NTk3MGQyYWMuLmE0ZWVhY2EwODIwNzUyODcwNTE0ZmUxNTc1ZjUwZjdkNzZiZDNjNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE1LDcgKzgxNSw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNE
YXRhJiYgd2Vic2l0ZVBvCiAgICAgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50
TG9hZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgKmRvY3VtZW50TG9hZGVyKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikK
K3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2UsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNp
b25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5wYWdlKCkgOiBudWxscHRyOwogICAgIGlmICgh
d2ViUGFnZSkgewpAQCAtODg3LDYgKzg4NywyMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAog
CiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgUmVmPFdlYkZyYW1lPiBwcm90ZWN0
KCptX2ZyYW1lKTsKKworICAgIGlmIChwb2xpY3lEZWNpc2lvbk1vZGUgPT0gUG9saWN5RGVjaXNp
b25Nb2RlOjpTeW5jaHJvbm91cykgeworICAgICAgICB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQ7
CisgICAgICAgIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb247CisgICAgICAgIERvd25sb2FkSUQg
ZG93bmxvYWRJRDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiB3
ZWJzaXRlUG9saWNpZXM7CisKKyAgICAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhtX2Zy
YW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSks
IGRvY3VtZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdGcmFtZSAmJiBvcmlnaW5hdGluZ0Zy
YW1lLT5wYWdlKCkgPyBvcmlnaW5hdGluZ0ZyYW1lLT5wYWdlKCktPnBhZ2VJRCgpIDogMCwgbmF2
aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdCwgbGlzdGVuZXJJRCwgVXNl
ckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1
c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OlJlcGx5KG5ld05hdmlnYXRpb25JRCwgcG9saWN5
QWN0aW9uLCBkb3dubG9hZElELCB3ZWJzaXRlUG9saWNpZXMpKSkgeworICAgICAgICAgICAgbV9m
cmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeUFjdGlvbjo6
SWdub3JlLCAwLCB7IH0sIHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgcG9s
aWN5QWN0aW9uLCAwLCBkb3dubG9hZElELCB7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUKHBvbGljeURlY2lzaW9uTW9kZSA9PSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFz
eW5jaHJvbm91cyk7CiAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obV9mcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBkb2N1bWVudExvYWRlci0+
bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIG9yaWdpbmF0aW5nRnJhbWUgJiYgb3JpZ2luYXRpbmdGcmFtZS0+cGFnZSgpID8gb3Jp
Z2luYXRpbmdGcmFtZS0+cGFnZSgpLT5wYWdlSUQoKSA6IDAsIG5hdmlnYXRpb25BY3Rpb24ucmVz
b3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdl
dCgpKSkpKQogICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVu
ZXJJRCwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggMmE2YzZmY2RkOGQ5YjkzOGRkMTc2NWExZGNiNjRkZjRjNWE4
NDY4My4uN2E3ZWYyYTliYjIxNGFjN2ExNGRjOWNiMmJhMDYwMTA3YjVhYzFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBm
aW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0
YXRlKiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRS
ZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9s
aWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IGMzYjQ5OWE4YzU4YTVkNDM1ZWNlNzJjZjE0OTBmZGJlNWJiYTk4OWUuLmEy
Yzc5MzJmNjgyNjk5NzZjMjkzMzY5NGMzZWVkYzYwMjk2NTJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJp
bmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKLSAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNp
b25Nb2RlLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
Y2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0lt
cGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGJiY2RhNzg0YmExZDhjNTAzYjgzYjAwMzNlZWY5
Y2I1YWIyMTYyMjYuLjFhNDExMzQ4YThlYjZjNzdkODdlZGFmY2RjNDllZDE4NTliNWY2MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC05MDAsNyArOTAwLDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
Y29uc3QgTmF2aWdhdGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5l
cjpzZXRVcFBvbGljeUxpc3RlbmVyKFdURk1vdmUoZnVuY3Rpb24pLCB0cnlBcHBMaW5rID8gKE5T
VVJMICopcmVxdWVzdC51cmwoKSA6IG5pbCkuZ2V0KCldOwogfQogCi12b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lE
ZWNpc2lvbk1vZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJW
aWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICAgICBCT09MIHRy
eUFwcExpbmsgPSBzaG91bGRUcnlBcHBMaW5rKHdlYlZpZXcsIGFjdGlvbiwgY29yZShtX3dlYkZy
YW1lLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMjdiZWRmYzhk
ZGQ5N2NmYjVjMmUwYTRiNWYxM2RjZTNhYWQ1NmJjOS4uYmJiMzY1YjYzOTRkZmI1Y2MyZGEzYWEz
MGRmMzU3MmNlZGFlZDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTY1
LDcgKzU2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpCiAgICAgbV9wb2xpY3lMaXN0ZW5l
clByaXZhdGUtPm1fcG9saWN5RnVuY3Rpb24oUG9saWN5QWN0aW9uOjpVc2UpOwogfQogCi12b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9u
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0
YXRlLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYmJDb3JlOjpQb2xpY3lEZWNpc2lv
bk1vZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3KiB3
ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOWI4MzMzYmMx
YWI5OTY3YjZmN2UzOWEyNWI3NTRmZjM0OTgwODYyZi4uMWEwMzEwNmYzOTc0ZmIwM2MwNWRiZWNk
MjkwZmQ3NmVlMTg3NTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMDIsNyAr
MTAyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2Us
IFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGlj
eUNoZWNrKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3koY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIx
NDU4MzJmMDVjMWU0NmVlODBlN2IzZTBkMGRmMDBlMTA5MTNlZTcuLjg4MDQ4ZDJkMzNhOTE2NGUz
NDYwN2YzYTliMjdjNzgzZGVhNmQyZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wNC0x
NiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyMjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVk
bHkgb3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25v
cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
ZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWw6IEFkZGVkLgorCiAyMDE4LTA0
LTE2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJr
IGNzczMvZmlsdGVycy9ibHVyLXZhcmlvdXMtcmFkaWkuaHRtbCBhcyBhIGNyYXNoIG9uIFdpbmRv
d3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21l
bnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ZmEyNWNiNDM2MzkwN2RkOTM2NmVhN2ZjYWY5ZDIzZTJj
NWJlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUuaHRt
bCN0ZXN0IHdpdGggbmF2aWdhdGlvbiB0eXBlICdvdGhlcicKK0NoZWNrcyB0aGF0IHRoZSBjbGll
bnQgY2FuIHByZXZlbnQgYSBmcmFnbWVudCBuYXZpZ2F0aW9uIHZpYSB0aGUgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbiBkZWxlZ2F0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgd2luZG93LmxvY2F0aW9uLmhyZWYgaXMgImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9u
LXBvbGljeS1pZ25vcmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9m
cmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTJiMTdi
YWQ4YjQ0MTUxMWEwZjI1ZGE5ODY1MjdhZDE1MzRlZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5
LWlnbm9yZS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQg
dGhlIGNsaWVudCBjYW4gcHJldmVudCBhIGZyYWdtZW50IG5hdmlnYXRpb24gdmlhIHRoZSBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIGRlbGVnYXRlLiIpOworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldEN1c3Rv
bVBvbGljeURlbGVnYXRlKHRydWUsIGZhbHNlKTsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgbG9jYXRpb24gPSAiI3Rlc3QiOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmxvY2F0aW9uLmhyZWYiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdu
b3JlLmh0bWwiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMCk7Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338114</attachid>
            <date>2018-04-17 08:36:48 -0700</date>
            <delta_ts>2018-04-17 09:07:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184678-20180417083647.patch</filename>
            <type>text/plain</type>
            <size>35876</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5OWQzNzAwN2ExMTk1
MGU3MmU3MDI5MWQ0YzExMTRlMDQ0OWIwZC4uMTQ4YTlmNDI3NmQ0Y2M3MzMxNzQzYmQyNDE3YWVk
ZjJkOTNjMWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjIyOTgz
MSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRseSBvcGVu
cyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDY3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzk0MjIxMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJhbWVudCBuYXZpZ2F0aW9ucyBuZWVkIHRvIGhhcHBlbiBzeW5jaHJv
bm91c2x5IGZvciBXZWItY29tcGF0aWJpbGl0eS4gQmVjYXVzZSBvZiB0aGlzLAorICAgICAgICBy
MjI1NjU3IGFkZGVkIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgaWYgdGhlIGNsaWVudCBkb2VzIG5v
dCBtYWtlIHRoZSBuYXZpZ2F0aW9uIHBvbGljeQorICAgICAgICBkZWNpc2lvbiBzeW5jaHJvbm91
c2x5IGZvciBmcmFtZW50IG5hdmlnYXRpb25zLCB0aGVuIHdlJ2xsIHN0b3Agd2FpdGluZyBmb3Ig
dGhlIGNsaWVudAorICAgICAgICBhbmQgcHJvY2VlZCB3aXRoIHRoZSBuYXZpZ2F0aW9uLiBIb3dl
dmVyLCByMjI5ODMxIG1ha2UgdGhlIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAg
IElQQyBkZWNpc2lvbiwgbWVhbmluZyB0aGF0IGV2ZW4gaWYgdGhlIGNsaWVudCByZXNwb25kcyBz
eW5jaHJvbm91c2x5LCBpdCB3b3VsZCBiZQorICAgICAgICBhc3luY2hyb25vdXNseSBmcm9tIFdl
YkNvcmUncyBwb2ludCBvZiB2aWV3LiBBcyBhIHJlc3VsdCwgd2Ugd291bGQgYWx3YXlzIGlnbm9y
ZSB0aGUKKyAgICAgICAgY2xpZW50J3MgcG9saWN5IGRlY2lzaW9uIHdoZW4gZG9pbmcgYSBmcmFn
bWVudCBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMgaXMgYW4gaXNzdWUgb24gaWNsb3VsZC5j
b20gYmVjYXVzZSB0aGUgd2ViLWFwcCBsaW5rcyBhcmUgZnJhZ21lbnQgVVJMcy4gV2hlbiB5b3UK
KyAgICAgICAgQ01EK2NsaWNrIG9uZSBvZiB0aGVzZSBsaW5rLCB3ZSBkbyB0aGUgbmF2aWdhdGlv
biBwb2xpY3kgY2hlY2suIEFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgICAgY2hlY2ssIFNhZmFy
aSByZXNwb25kcyBJR05PUkUgdG8gdGhlIHBvbGljeSBkZWNpc2lvbiBhbmQgaW5zdGVhZCBkZWNp
ZGVzIHRvIGxvYWQgdGhlCisgICAgICAgIGxpbmsgaW4gYSBuZXcgdGFiIChiZWNhdXNlIENNRCBr
ZXkgaXMgcHJlc3NlZCkuIER1ZSB0byB0aGUgYnVnIG1lbnRpb25lZCBhYm92ZSwgd2UKKyAgICAg
ICAgd291bGQgbm90IG9iZXkgdGhlIElHTk9SRSBwb2xpY3kgZGVjaXNpb24gZnJvbSBTYWZhcmkg
YW5kIGxvYWQgdGhlIGxpbmsgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgdGFiLCBldmVuIHRob3Vn
aCBTYWZhcmkgd291bGQgYWxyZWFkeSBiZSBsb2FkaW5nIGl0IGluIGEgbmV3IHRhYi4KKworICAg
ICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgSSByZWludHJvZHVjZWQgYSBzeW5jaHJvbm91cyBj
b2RlIHBhdGggZm9yIG5hdmlnYXRpb24gcG9saWN5CisgICAgICAgIGRlY2lzaW9uIG1ha2luZywg
YmFja2VkIGJ5IHN5bmNocm9ub3VzIElQQy4gVGhpcyBzeW5jaHJvbm91cyBjb2RlIHBhdGggaXMg
bm93IHVzZWQgZm9yCisgICAgICAgIGZyYWdtZW50IG5hdmlnYXRpb25zIHRvIHJlc3RvcmUgcHJl
LXIyMjk4MzEgYmVoYXZpb3IuIElmIHRoZSBjbGllbnQgZG9lcyBub3QgYW5zd2VyCisgICAgICAg
IHN5bmNocm9ub3VzbHksIHdlJ2xsIHByb2NlZWQgd2l0aCB0aGUgbmF2aWdhdGlvbiBhbnl3YXks
IGFzIHdhcyBoYXBwZW5pbmcgcHJlLXIyMjk4MzEuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bik6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNo
ZWNrZXIuaDoKKwogMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgbW9yZSBXaW5kb3dQcm94eS1yZWxhdGVkIGxvZ2ljIGZyb20gU2NyaXB0
Q29udHJvbGxlciB0byBXaW5kb3dQcm94eUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTA3YjAwZTdj
YzVhNGE4YzJmMzliZDM5NGU3YjJiZWE5ODUwYjcxNS4uMjg5OTA0NGM5ZDA5NDdkMjFmZGE3N2Zl
ZDkwZjQzODBlZTc1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wNC0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
Mjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkg
b3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlLWludHJvZHVjZSBzeW5jaHJvbm91cyBjb2RlIHBhdGggd2hp
Y2ggZXhpc3RlZCBwcmUtcjIyOTgzMSBhbmQgdXNlIGl0IGZvciBmcmFnbWVudCBuYXZpZ2F0aW9u
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorCiAyMDE4LTA0LTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRpb246IGFkZCBTUEkgdG8gdGVybWluYXRlIGF1dG9tYXRp
b24gc2Vzc2lvbiBhbmQgZGlzY29ubmVjdCB0aGUgcmVtb3RlIGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY2YmNmZmFiOWMyZjQ2MjBmYzJhYjBjZTY5N2RlZTE4YTMyY2YwMWYu
LjdjMWE0M2Y5NTRiODY2ZjhjNzcxZWRjZmY5MWUzMzEzNTcxMzUxYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQt
Y2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBs
aW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBuZXcgcGFyYW1ldGVyIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKwogMjAxOC0wNC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdpbmRvd1Byb3h5IGhhbmRsaW5nIG91dCBvZiBTY3Jp
cHRDb250cm9sbGVyIGFuZCBpbnRvIGEgbmV3IGNsYXNzIG93bmVkIGJ5IEFic3RyYWN0RnJhbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAzMDE4ZmY2OTE1NTk2YjRkM2Q1OGFhMGQ2
Zjk1OTc4MjMxMGExY2M5Li40NmMwZjdhMjFjZWY2OTUzNTFlMTdjM2ZkNzUzYWQzZGEyNGIzNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQt
MTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxpbmsgdW5leHBlY3Rl
ZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJyZW50IHRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njc4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQyMjEyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHBhcmFtZXRlciB0byBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA0LTEyICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBU
dXJuIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlvbnMgYXMgV2ViIEFuaW1hdGlvbnMg
b24gYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAx
ZWQzY2IxNDFhYjM3NDFkMzBhMDhhMzZlZWY1MjRlNWQwYWVmMGY4Li5iNjFiMjZmZTExNWE0M2I0
YmQ5NjI4MGFjYTdiZjZhZGQ3MTM5ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhCiB7CiB9
CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBib29sLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCit2b2lkIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDA3YzMyYjhjM2VlNzY5MTcwYjJkNWVhNTExNWMzMzljYmNlOGE0OTAuLjM0YTUw
OGFiNThjNmQ2N2FkZTIzNTc3OTYwM2Q0N2Q5ZDQyM2E5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTUsNyArOTUsNyBAQCBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9h
ZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1v
ZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDg2M2Q1OWM3ZDRhOGQyMDFlMTMzMDY0ZmIwZmNjZGQwMjFkZWQz
NGYuLjQwOTg1MGE5ZDYxN2U4NGI0NzM3ZmEyYzg2OGI2YTA4YWEzMDhjYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI2MCwxMCArMTI2MCw2IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OmlzU3RvcExvYWRpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
RGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7
CiB9CiAKLXN0cnVjdCBTaGFyZWRCb29sIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQm9vbD4g
ewotICAgIGJvb2wgdmFsdWUgeyBmYWxzZSB9OwotfTsKLQogdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgRnJhbWVMb2FkVHlwZSBuZXdMb2FkVHlwZSwgRXZlbnQqIGV2ZW50LCBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEzMzYsMTcgKzEzMzIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+
c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5
Q2hlY2tlcigpLnN0b3BDaGVjaygpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5
cGUobmV3TG9hZFR5cGUpOwotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0g
YWRvcHRSZWYoKm5ldyBTaGFyZWRCb29sKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNr
TmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGZhbHNlIC8qIGRpZFJl
Y2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0
YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9u
SGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlmICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQt
PnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZ
ZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICghY29tcGxl
dGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlZC0+dmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9s
bEFmdGVyTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKHJlcXVlc3QpLCB0cnVlKTsKLSAgICAgICAg
fQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KSwgZmFsc2UgLyogZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgKi8s
IG9sZERvY3VtZW50TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsIFt0aGlzLCBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZv
cm1TdGF0ZSosIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgICAgICBj
b250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3Vs
ZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICB9LCBQb2xpY3lEZWNp
c2lvbk1vZGU6OlN5bmNocm9ub3VzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUx
MiwxNyArMTUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXJDYWxsZWQgPSBhZG9wdFJlZigqbmV3IFNoYXJlZEJvb2wpOwotICAgICAgICBwb2xp
Y3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PnJlcXVlc3QoKSksIGZhbHNlIC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGRE
b2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBt
YWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9y
bVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlm
ICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250
aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgaWYgKCFjb21wbGV0aW9uSGFuZGxlckNhbGxlZC0+dmFsdWUpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLT52YWx1ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGxvYWRlci0+cmVx
dWVzdCgpLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
YXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSksIGZhbHNl
IC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQo
KSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqLCBTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFm
dGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250
aW51ZTo6WWVzKTsKKyAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYTA0NDE5YzdjMzhmMTdhODE1NzdhZGVjZGI1Njk5YjNiZGQ1MzFk
ZC4uM2RhOTBmMjc0MWJmZWQwZWU5MjNmN2U5ZTIzMDVlNDljYzViYjA3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKIGNsYXNzIFdpZGdldDsKIAorZW51bSBjbGFz
cyBQb2xpY3lEZWNpc2lvbk1vZGU7CiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIAogdHlw
ZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IEZyYW1lUG9saWN5RnVuY3Rp
b247CkBAIC0xOTAsNyArMTkxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlk
UmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApp
bmRleCAzNzAyNTgwYzNkMmI5Nzg5MWJkYTBhMDI2NDExYzM3MTBhMGU3ODgwLi44MmQ2ZjY5Nzg2
MWU0YmYzOTZjMjNmMDU4OWQ0MDgzZjRiNzJlODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGJvb2wgZGlk
CiAgICAgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdURk1vdmUobmV3UmVxdWVzdCksIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCksIG51bGxwdHIsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBk
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRm9ybVN0
YXRlKiBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lz
aW9uTW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dl
cmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0xNDksNyArMTQ5
LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBkaWRSZWMKICAgICBtX2RlbGVnYXRlSXNEZWNpZGluZ05h
dmlnYXRpb25Qb2xpY3kgPSB0cnVlOwogICAgIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IGFj
dGlvbi5kb3dubG9hZEF0dHJpYnV0ZSgpLmlzRW1wdHkoKSA/IG51bGxBdG9tKCkgOiBhY3Rpb24u
ZG93bmxvYWRBdHRyaWJ1dGUoKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdENvcHkgPSBy
ZXF1ZXN0OwotICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVxdWVzdCwgZGlkUmVjZWl2ZVJlZGlyZWN0
UmVzcG9uc2UsIGZvcm1TdGF0ZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiks
IHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihm
b3JtU3RhdGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUp
XShQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rp
b24sIHJlcXVlc3QsIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBmb3JtU3RhdGUsIHBvbGlj
eURlY2lzaW9uTW9kZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiksIHJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihmb3JtU3Rh
dGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUpXShQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5kaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCk7CiAKICAgICAg
ICAgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5ID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCAyZmRiMjUwMjE5NTZhNTUwMTljNjcyNzNk
ZWYyZjgxMjI5NThkNDk5Li5iMTZjMWVlMjU5NGRkN2RiMTU3ZTQzZWU0ZDgzOTZmNmQ3NWE3Mzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTU2LDYgKzU2LDggQEAg
ZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7CiAgICAgRm9yU3VzcGVuc2lvbgogfTsKIAorZW51
bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07
CisKIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsK
IHVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUpPjsK
IApAQCAtNjUsNyArNjcsNyBAQCBjbGFzcyBQb2xpY3lDaGVja2VyIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICB2b2lkIGNoZWNrTmF2aWdhdGlv
blBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRG9jdW1lbnRMb2FkZXIqLCBGb3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25G
dW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVl
c3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqLCBG
b3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmLCBQb2xpY3lEZWNp
c2lvbk1vZGUgPSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgdm9pZCBj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogICAg
IHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTmV3V2lu
ZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWY3Y2VjYTUzMjE4N2Q3ZDllYzI1NWNiYzJlOTBjZDFlMzg1
NWI5My4uZGZiNGU4OWI1OGVkZjYxOWViNGI1YWU4MTkyOTkxZjc2ZDBhNjY1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzkyLDYgKzIzOTIsMTQgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFj
dGlvbiwgV2ViRnJhbWVQcm94eSYgZnIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChtX2lu
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpIHsKKyAgICAgICAgbV9zeW5jTmF2
aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbklzVmFsaWQgPSB0cnVlOworICAgICAgICBtX3N5bmNO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWN0aW9uID0gYWN0aW9uOworICAgICAgICBtX3N5bmNOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWRJRCA9IGRvd25sb2FkSUQ7CisgICAgICAgIG1fc3lu
Y05hdmlnYXRpb25BY3Rpb25Qb2xpY3lXZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZS5mcmFtZUlE
KCksIGxpc3RlbmVySUQsIGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpIDogMCwgZG93bmxvYWRJRCwgd2Vic2l0ZVBvbGljaWVzKSwgbV9wYWdlSUQpOwogfQog
CkBAIC0zOTM1LDYgKzM5NDMsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICAgICBtX3No
b3VsZFN1cHByZXNzQXBwTGlua3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSBmYWxz
ZTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCB1aW50NjRfdCYgbmV3TmF2aWdhdGlvbklELCBXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24mIHBvbGljeUFjdGlvbiwgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgc3RkOjpvcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiYgd2Vic2l0ZVBvbGljaWVzKQoreworICAgIEFTU0VSVCgh
bV9pbkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKTsKKyAgICBtX2luRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMgPSB0cnVlOworICAgIG1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBY3Rpb25Jc1ZhbGlkID0gZmFsc2U7CisKKyAgICBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWVJbmZv
RGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0
KSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworCisgICAgbV9pbkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jID0gZmFsc2U7CisgICAgaWYgKG1fc3luY05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lBY3Rpb25Jc1ZhbGlkKSB7CisgICAgICAgIHBvbGljeUFjdGlvbiA9IG1fc3luY05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBY3Rpb247CisgICAgICAgIGRvd25sb2FkSUQgPSBtX3N5bmNOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWRJRDsKKyAgICAgICAgd2Vic2l0ZVBvbGljaWVzID0g
V1RGTW92ZShtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5V2Vic2l0ZVBvbGljaWVzKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgcG9saWN5QWN0aW9uID0gV2ViQ29yZTo6UG9saWN5QWN0aW9uOjpV
c2U7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGVkYjgzNjY2NTM1MTI0MzM4MWQzNjUyNjdmMTVkMDk2YTVi
NmYzMGMuLjRiYmUzYTc0MjY1MzU0MGFiZTk5NGI2ZWZhNTM2YTJmMGM0NTdiMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzY5LDYgKzEzNjksNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklE
KTsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29u
c3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QmIG5ld05hdmln
YXRpb25JRCwgV2ViQ29yZTo6UG9saWN5QWN0aW9uJiwgRG93bmxvYWRJRCYsIHN0ZDo6b3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE5Mjgs
NiArMTkyOSwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0luUHJpbnRpbmdNb2RlIHsgZmFs
c2UgfTsKICAgICBib29sIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24geyBmYWxzZSB9
OwogCisgICAgLy8gU3luY2hyb25vdXMgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24uCisgICAg
Ym9vbCBtX2luRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeUFjdGlvbklzVmFsaWQgeyBmYWxz
ZX07CisgICAgV2ViQ29yZTo6UG9saWN5QWN0aW9uIG1fc3luY05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lBY3Rpb24geyBXZWJDb3JlOjpQb2xpY3lBY3Rpb246OlVzZSB9OworICAgIERvd25sb2FkSUQg
bV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkSUQgeyAwIH07CisgICAgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
V2Vic2l0ZVBvbGljaWVzOworCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0OwogICAgIGJvb2wgbV9zaG91bGRTdXBwcmVzc0FwcExp
bmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRmYjVh
OWI1YjMyMmE5MDNkY2NkOTFkMmRhNGU2NzQ2ZGYwNzViZjMuLjRkOTZjNWIxZDNmZDQ2OTEyNGFj
OWI5MDI3ZGU1NGQ3MzQ0MjY2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwMCw2ICsxMDAsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5h
dGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpIC0+ICh1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIGVudW0g
V2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgV2ViS2l0OjpEb3dubG9hZElEIGRv
d25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJz
aXRlUG9saWNpZXMpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAg
IFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGMyYjEwNDk1NjdhOTU5NjUzNjVhNjM4MjAxNTkzZTRk
NTk3MGQyYWMuLmE0ZWVhY2EwODIwNzUyODcwNTE0ZmUxNTc1ZjUwZjdkNzZiZDNjNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE1LDcgKzgxNSw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNE
YXRhJiYgd2Vic2l0ZVBvCiAgICAgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50
TG9hZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgKmRvY3VtZW50TG9hZGVyKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikK
K3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2UsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNp
b25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5wYWdlKCkgOiBudWxscHRyOwogICAgIGlmICgh
d2ViUGFnZSkgewpAQCAtODg3LDYgKzg4NywyMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAog
CiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgUmVmPFdlYkZyYW1lPiBwcm90ZWN0
KCptX2ZyYW1lKTsKKworICAgIGlmIChwb2xpY3lEZWNpc2lvbk1vZGUgPT0gUG9saWN5RGVjaXNp
b25Nb2RlOjpTeW5jaHJvbm91cykgeworICAgICAgICB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQ7
CisgICAgICAgIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb247CisgICAgICAgIERvd25sb2FkSUQg
ZG93bmxvYWRJRDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiB3
ZWJzaXRlUG9saWNpZXM7CisKKyAgICAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhtX2Zy
YW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSks
IGRvY3VtZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdGcmFtZSAmJiBvcmlnaW5hdGluZ0Zy
YW1lLT5wYWdlKCkgPyBvcmlnaW5hdGluZ0ZyYW1lLT5wYWdlKCktPnBhZ2VJRCgpIDogMCwgbmF2
aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdCwgbGlzdGVuZXJJRCwgVXNl
ckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1
c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OlJlcGx5KG5ld05hdmlnYXRpb25JRCwgcG9saWN5
QWN0aW9uLCBkb3dubG9hZElELCB3ZWJzaXRlUG9saWNpZXMpKSkgeworICAgICAgICAgICAgbV9m
cmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeUFjdGlvbjo6
SWdub3JlLCAwLCB7IH0sIHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgcG9s
aWN5QWN0aW9uLCAwLCBkb3dubG9hZElELCB7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUKHBvbGljeURlY2lzaW9uTW9kZSA9PSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFz
eW5jaHJvbm91cyk7CiAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obV9mcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBkb2N1bWVudExvYWRlci0+
bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIG9yaWdpbmF0aW5nRnJhbWUgJiYgb3JpZ2luYXRpbmdGcmFtZS0+cGFnZSgpID8gb3Jp
Z2luYXRpbmdGcmFtZS0+cGFnZSgpLT5wYWdlSUQoKSA6IDAsIG5hdmlnYXRpb25BY3Rpb24ucmVz
b3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdl
dCgpKSkpKQogICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVu
ZXJJRCwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggMmE2YzZmY2RkOGQ5YjkzOGRkMTc2NWExZGNiNjRkZjRjNWE4
NDY4My4uN2E3ZWYyYTliYjIxNGFjN2ExNGRjOWNiMmJhMDYwMTA3YjVhYzFhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBm
aW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0
YXRlKiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRS
ZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9s
aWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IGMzYjQ5OWE4YzU4YTVkNDM1ZWNlNzJjZjE0OTBmZGJlNWJiYTk4OWUuLmEy
Yzc5MzJmNjgyNjk5NzZjMjkzMzY5NGMzZWVkYzYwMjk2NTJkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJp
bmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKLSAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNp
b25Nb2RlLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
Y2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0lt
cGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGJiY2RhNzg0YmExZDhjNTAzYjgzYjAwMzNlZWY5
Y2I1YWIyMTYyMjYuLjFhNDExMzQ4YThlYjZjNzdkODdlZGFmY2RjNDllZDE4NTliNWY2MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC05MDAsNyArOTAwLDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
Y29uc3QgTmF2aWdhdGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25MaXN0ZW5l
cjpzZXRVcFBvbGljeUxpc3RlbmVyKFdURk1vdmUoZnVuY3Rpb24pLCB0cnlBcHBMaW5rID8gKE5T
VVJMICopcmVxdWVzdC51cmwoKSA6IG5pbCkuZ2V0KCldOwogfQogCi12b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lE
ZWNpc2lvbk1vZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJW
aWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICAgICBCT09MIHRy
eUFwcExpbmsgPSBzaG91bGRUcnlBcHBMaW5rKHdlYlZpZXcsIGFjdGlvbiwgY29yZShtX3dlYkZy
YW1lLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMjdiZWRmYzhk
ZGQ5N2NmYjVjMmUwYTRiNWYxM2RjZTNhYWQ1NmJjOS4uYzk3MzZiMWM4Y2QzYzRmOWYzZTEwZDUw
ZTVjYmIyY2JkZDJjNGIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTY1
LDcgKzU2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpCiAgICAgbV9wb2xpY3lMaXN0ZW5l
clByaXZhdGUtPm1fcG9saWN5RnVuY3Rpb24oUG9saWN5QWN0aW9uOjpVc2UpOwogfQogCi12b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9u
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wsIEZvcm1TdGF0ZSogZm9ybVN0
YXRlLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeURlY2lzaW9u
TW9kZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdl
YlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5YjgzMzNiYzFh
Yjk5NjdiNmY3ZTM5YTI1Yjc1NGZmMzQ5ODA4NjJmLi4xYTAzMTA2ZjM5NzRmYjAzYzA1ZGJlY2Qy
OTBmZDc2ZWUxODc1ODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMiw3ICsx
MDIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUG9saWN5
Q2hlY2soKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBv
bGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjE0
NTgzMmYwNWMxZTQ2ZWU4MGU3YjNlMGQwZGYwMGUxMDkxM2VlNy4uODgwNDhkMmQzM2E5MTY0ZTM0
NjA3ZjNhOWIyN2M3ODNkZWE2ZDJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA0LTE2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAo
cjIyOTgzMSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRs
eSBvcGVucyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDY3OAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzk0MjIxMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9y
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9m
cmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUuaHRtbDogQWRkZWQuCisKIDIwMTgtMDQt
MTYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsg
Y3NzMy9maWx0ZXJzL2JsdXItdmFyaW91cy1yYWRpaS5odG1sIGFzIGEgY3Jhc2ggb24gV2luZG93
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9mcmFnbWVu
dC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVmYTI1Y2I0MzYzOTA3ZGQ5MzY2ZWE3ZmNhZjlkMjNlMmM1
YmVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1BvbGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1s
I3Rlc3Qgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJ290aGVyJworQ2hlY2tzIHRoYXQgdGhlIGNsaWVu
dCBjYW4gcHJldmVudCBhIGZyYWdtZW50IG5hdmlnYXRpb24gdmlhIHRoZSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uIGRlbGVnYXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB3aW5kb3cubG9jYXRpb24uaHJlZiBpcyAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWwiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24t
cG9saWN5LWlnbm9yZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2Zy
YWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhMmIxN2Jh
ZDhiNDQxNTExYTBmMjVkYTk4NjUyN2FkMTUzNGVkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3kt
aWdub3JlLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCB0
aGUgY2xpZW50IGNhbiBwcmV2ZW50IGEgZnJhZ21lbnQgbmF2aWdhdGlvbiB2aWEgdGhlIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gZGVsZWdhdGUuIik7Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGUodHJ1ZSwgZmFsc2UpOworCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAg
ICBsb2NhdGlvbiA9ICIjdGVzdCI7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cubG9jYXRpb24uaHJlZiIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25v
cmUuaHRtbCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAwKTsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338124</attachid>
            <date>2018-04-17 09:07:14 -0700</date>
            <delta_ts>2018-04-17 09:18:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184678-20180417090713.patch</filename>
            <type>text/plain</type>
            <size>35059</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5OWQzNzAwN2ExMTk1
MGU3MmU3MDI5MWQ0YzExMTRlMDQ0OWIwZC4uMTQ4YTlmNDI3NmQ0Y2M3MzMxNzQzYmQyNDE3YWVk
ZjJkOTNjMWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjIyOTgz
MSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRseSBvcGVu
cyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDY3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzk0MjIxMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJhbWVudCBuYXZpZ2F0aW9ucyBuZWVkIHRvIGhhcHBlbiBzeW5jaHJv
bm91c2x5IGZvciBXZWItY29tcGF0aWJpbGl0eS4gQmVjYXVzZSBvZiB0aGlzLAorICAgICAgICBy
MjI1NjU3IGFkZGVkIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgaWYgdGhlIGNsaWVudCBkb2VzIG5v
dCBtYWtlIHRoZSBuYXZpZ2F0aW9uIHBvbGljeQorICAgICAgICBkZWNpc2lvbiBzeW5jaHJvbm91
c2x5IGZvciBmcmFtZW50IG5hdmlnYXRpb25zLCB0aGVuIHdlJ2xsIHN0b3Agd2FpdGluZyBmb3Ig
dGhlIGNsaWVudAorICAgICAgICBhbmQgcHJvY2VlZCB3aXRoIHRoZSBuYXZpZ2F0aW9uLiBIb3dl
dmVyLCByMjI5ODMxIG1ha2UgdGhlIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAg
IElQQyBkZWNpc2lvbiwgbWVhbmluZyB0aGF0IGV2ZW4gaWYgdGhlIGNsaWVudCByZXNwb25kcyBz
eW5jaHJvbm91c2x5LCBpdCB3b3VsZCBiZQorICAgICAgICBhc3luY2hyb25vdXNseSBmcm9tIFdl
YkNvcmUncyBwb2ludCBvZiB2aWV3LiBBcyBhIHJlc3VsdCwgd2Ugd291bGQgYWx3YXlzIGlnbm9y
ZSB0aGUKKyAgICAgICAgY2xpZW50J3MgcG9saWN5IGRlY2lzaW9uIHdoZW4gZG9pbmcgYSBmcmFn
bWVudCBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMgaXMgYW4gaXNzdWUgb24gaWNsb3VsZC5j
b20gYmVjYXVzZSB0aGUgd2ViLWFwcCBsaW5rcyBhcmUgZnJhZ21lbnQgVVJMcy4gV2hlbiB5b3UK
KyAgICAgICAgQ01EK2NsaWNrIG9uZSBvZiB0aGVzZSBsaW5rLCB3ZSBkbyB0aGUgbmF2aWdhdGlv
biBwb2xpY3kgY2hlY2suIEFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgICAgY2hlY2ssIFNhZmFy
aSByZXNwb25kcyBJR05PUkUgdG8gdGhlIHBvbGljeSBkZWNpc2lvbiBhbmQgaW5zdGVhZCBkZWNp
ZGVzIHRvIGxvYWQgdGhlCisgICAgICAgIGxpbmsgaW4gYSBuZXcgdGFiIChiZWNhdXNlIENNRCBr
ZXkgaXMgcHJlc3NlZCkuIER1ZSB0byB0aGUgYnVnIG1lbnRpb25lZCBhYm92ZSwgd2UKKyAgICAg
ICAgd291bGQgbm90IG9iZXkgdGhlIElHTk9SRSBwb2xpY3kgZGVjaXNpb24gZnJvbSBTYWZhcmkg
YW5kIGxvYWQgdGhlIGxpbmsgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgdGFiLCBldmVuIHRob3Vn
aCBTYWZhcmkgd291bGQgYWxyZWFkeSBiZSBsb2FkaW5nIGl0IGluIGEgbmV3IHRhYi4KKworICAg
ICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgSSByZWludHJvZHVjZWQgYSBzeW5jaHJvbm91cyBj
b2RlIHBhdGggZm9yIG5hdmlnYXRpb24gcG9saWN5CisgICAgICAgIGRlY2lzaW9uIG1ha2luZywg
YmFja2VkIGJ5IHN5bmNocm9ub3VzIElQQy4gVGhpcyBzeW5jaHJvbm91cyBjb2RlIHBhdGggaXMg
bm93IHVzZWQgZm9yCisgICAgICAgIGZyYWdtZW50IG5hdmlnYXRpb25zIHRvIHJlc3RvcmUgcHJl
LXIyMjk4MzEgYmVoYXZpb3IuIElmIHRoZSBjbGllbnQgZG9lcyBub3QgYW5zd2VyCisgICAgICAg
IHN5bmNocm9ub3VzbHksIHdlJ2xsIHByb2NlZWQgd2l0aCB0aGUgbmF2aWdhdGlvbiBhbnl3YXks
IGFzIHdhcyBoYXBwZW5pbmcgcHJlLXIyMjk4MzEuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bik6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNo
ZWNrZXIuaDoKKwogMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgbW9yZSBXaW5kb3dQcm94eS1yZWxhdGVkIGxvZ2ljIGZyb20gU2NyaXB0
Q29udHJvbGxlciB0byBXaW5kb3dQcm94eUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTA3YjAwZTdj
YzVhNGE4YzJmMzliZDM5NGU3YjJiZWE5ODUwYjcxNS4uMjg5OTA0NGM5ZDA5NDdkMjFmZGE3N2Zl
ZDkwZjQzODBlZTc1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wNC0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
Mjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkg
b3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlLWludHJvZHVjZSBzeW5jaHJvbm91cyBjb2RlIHBhdGggd2hp
Y2ggZXhpc3RlZCBwcmUtcjIyOTgzMSBhbmQgdXNlIGl0IGZvciBmcmFnbWVudCBuYXZpZ2F0aW9u
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorCiAyMDE4LTA0LTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRpb246IGFkZCBTUEkgdG8gdGVybWluYXRlIGF1dG9tYXRp
b24gc2Vzc2lvbiBhbmQgZGlzY29ubmVjdCB0aGUgcmVtb3RlIGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY2YmNmZmFiOWMyZjQ2MjBmYzJhYjBjZTY5N2RlZTE4YTMyY2YwMWYu
LjdjMWE0M2Y5NTRiODY2ZjhjNzcxZWRjZmY5MWUzMzEzNTcxMzUxYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQt
Y2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBs
aW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBuZXcgcGFyYW1ldGVyIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKwogMjAxOC0wNC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdpbmRvd1Byb3h5IGhhbmRsaW5nIG91dCBvZiBTY3Jp
cHRDb250cm9sbGVyIGFuZCBpbnRvIGEgbmV3IGNsYXNzIG93bmVkIGJ5IEFic3RyYWN0RnJhbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAzMDE4ZmY2OTE1NTk2YjRkM2Q1OGFhMGQ2
Zjk1OTc4MjMxMGExY2M5Li40NmMwZjdhMjFjZWY2OTUzNTFlMTdjM2ZkNzUzYWQzZGEyNGIzNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQt
MTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxpbmsgdW5leHBlY3Rl
ZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJyZW50IHRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njc4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQyMjEyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHBhcmFtZXRlciB0byBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA0LTEyICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBU
dXJuIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlvbnMgYXMgV2ViIEFuaW1hdGlvbnMg
b24gYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAx
ZWQzY2IxNDFhYjM3NDFkMzBhMDhhMzZlZWY1MjRlNWQwYWVmMGY4Li5iNjFiMjZmZTExNWE0M2I0
YmQ5NjI4MGFjYTdiZjZhZGQ3MTM5ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhCiB7CiB9
CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBib29sLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCit2b2lkIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDA3YzMyYjhjM2VlNzY5MTcwYjJkNWVhNTExNWMzMzljYmNlOGE0OTAuLjM0YTUw
OGFiNThjNmQ2N2FkZTIzNTc3OTYwM2Q0N2Q5ZDQyM2E5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTUsNyArOTUsNyBAQCBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9h
ZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1v
ZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDg2M2Q1OWM3ZDRhOGQyMDFlMTMzMDY0ZmIwZmNjZGQwMjFkZWQz
NGYuLjQwOTg1MGE5ZDYxN2U4NGI0NzM3ZmEyYzg2OGI2YTA4YWEzMDhjYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI2MCwxMCArMTI2MCw2IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OmlzU3RvcExvYWRpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
RGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7
CiB9CiAKLXN0cnVjdCBTaGFyZWRCb29sIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQm9vbD4g
ewotICAgIGJvb2wgdmFsdWUgeyBmYWxzZSB9OwotfTsKLQogdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgRnJhbWVMb2FkVHlwZSBuZXdMb2FkVHlwZSwgRXZlbnQqIGV2ZW50LCBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEzMzYsMTcgKzEzMzIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+
c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5
Q2hlY2tlcigpLnN0b3BDaGVjaygpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5
cGUobmV3TG9hZFR5cGUpOwotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0g
YWRvcHRSZWYoKm5ldyBTaGFyZWRCb29sKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNr
TmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGZhbHNlIC8qIGRpZFJl
Y2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0
YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9u
SGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlmICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQt
PnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZ
ZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICghY29tcGxl
dGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlZC0+dmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9s
bEFmdGVyTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKHJlcXVlc3QpLCB0cnVlKTsKLSAgICAgICAg
fQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KSwgZmFsc2UgLyogZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgKi8s
IG9sZERvY3VtZW50TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsIFt0aGlzLCBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZv
cm1TdGF0ZSosIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgICAgICBj
b250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3Vs
ZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICB9LCBQb2xpY3lEZWNp
c2lvbk1vZGU6OlN5bmNocm9ub3VzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUx
MiwxNyArMTUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXJDYWxsZWQgPSBhZG9wdFJlZigqbmV3IFNoYXJlZEJvb2wpOwotICAgICAgICBwb2xp
Y3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PnJlcXVlc3QoKSksIGZhbHNlIC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGRE
b2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBt
YWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9y
bVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlm
ICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250
aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgaWYgKCFjb21wbGV0aW9uSGFuZGxlckNhbGxlZC0+dmFsdWUpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLT52YWx1ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGxvYWRlci0+cmVx
dWVzdCgpLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
YXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSksIGZhbHNl
IC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQo
KSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqLCBTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFm
dGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250
aW51ZTo6WWVzKTsKKyAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYTA0NDE5YzdjMzhmMTdhODE1NzdhZGVjZGI1Njk5YjNiZGQ1MzFk
ZC4uM2RhOTBmMjc0MWJmZWQwZWU5MjNmN2U5ZTIzMDVlNDljYzViYjA3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKIGNsYXNzIFdpZGdldDsKIAorZW51bSBjbGFz
cyBQb2xpY3lEZWNpc2lvbk1vZGU7CiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIAogdHlw
ZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IEZyYW1lUG9saWN5RnVuY3Rp
b247CkBAIC0xOTAsNyArMTkxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlk
UmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApp
bmRleCAzNzAyNTgwYzNkMmI5Nzg5MWJkYTBhMDI2NDExYzM3MTBhMGU3ODgwLi44MmQ2ZjY5Nzg2
MWU0YmYzOTZjMjNmMDU4OWQ0MDgzZjRiNzJlODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGJvb2wgZGlk
CiAgICAgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdURk1vdmUobmV3UmVxdWVzdCksIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCksIG51bGxwdHIsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBk
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRm9ybVN0
YXRlKiBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lz
aW9uTW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dl
cmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0xNDksNyArMTQ5
LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBkaWRSZWMKICAgICBtX2RlbGVnYXRlSXNEZWNpZGluZ05h
dmlnYXRpb25Qb2xpY3kgPSB0cnVlOwogICAgIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IGFj
dGlvbi5kb3dubG9hZEF0dHJpYnV0ZSgpLmlzRW1wdHkoKSA/IG51bGxBdG9tKCkgOiBhY3Rpb24u
ZG93bmxvYWRBdHRyaWJ1dGUoKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdENvcHkgPSBy
ZXF1ZXN0OwotICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVxdWVzdCwgZGlkUmVjZWl2ZVJlZGlyZWN0
UmVzcG9uc2UsIGZvcm1TdGF0ZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiks
IHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihm
b3JtU3RhdGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUp
XShQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rp
b24sIHJlcXVlc3QsIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBmb3JtU3RhdGUsIHBvbGlj
eURlY2lzaW9uTW9kZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiksIHJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihmb3JtU3Rh
dGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUpXShQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5kaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCk7CiAKICAgICAg
ICAgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5ID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCAyZmRiMjUwMjE5NTZhNTUwMTljNjcyNzNk
ZWYyZjgxMjI5NThkNDk5Li5iMTZjMWVlMjU5NGRkN2RiMTU3ZTQzZWU0ZDgzOTZmNmQ3NWE3Mzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTU2LDYgKzU2LDggQEAg
ZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7CiAgICAgRm9yU3VzcGVuc2lvbgogfTsKIAorZW51
bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07
CisKIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsK
IHVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUpPjsK
IApAQCAtNjUsNyArNjcsNyBAQCBjbGFzcyBQb2xpY3lDaGVja2VyIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICB2b2lkIGNoZWNrTmF2aWdhdGlv
blBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRG9jdW1lbnRMb2FkZXIqLCBGb3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25G
dW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVl
c3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqLCBG
b3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmLCBQb2xpY3lEZWNp
c2lvbk1vZGUgPSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgdm9pZCBj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogICAg
IHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTmV3V2lu
ZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWY3Y2VjYTUzMjE4N2Q3ZDllYzI1NWNiYzJlOTBjZDFlMzg1
NWI5My4uM2U4YTY5ZjczZWQxZjM0MmJlZjgwYzYyZGJjMzY5YmY2MmQ4OWQ0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzkyLDYgKzIzOTIsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFj
dGlvbiwgV2ViRnJhbWVQcm94eSYgZnIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChhdXRv
IHN5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5UmVwbHkgPSBXVEZNb3ZlKG1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lSZXBseSkpIHsKKyAgICAgICAgc3luY05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lSZXBseS0+c2VuZChuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAw
LCBhY3Rpb24sIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZS5mcmFtZUlEKCksIGxpc3RlbmVySUQsIGFj
dGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxv
YWRJRCwgd2Vic2l0ZVBvbGljaWVzKSwgbV9wYWdlSUQpOwogfQogCkBAIC0zOTM1LDYgKzM5NDAs
MTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICAgICBtX3Nob3VsZFN1cHByZXNzQXBwTGlu
a3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSBmYWxzZTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmM6OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKK3sKKyAgICBBU1NFUlQoIW1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lSZXBseSk7CisgICAgbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeVJl
cGx5ID0gV1RGTW92ZShyZXBseSk7CisKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRp
bmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgbGlzdGVuZXJJRCwg
dXNlckRhdGEpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihtX3BhZ2VDbGllbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlZGI4MzY2NjUzNTEyNDMzODFkMzY1MjY3ZjE1
ZDA5NmE1YjZmMzBjLi44N2EwYjU5Y2QxNjQyODZmNWJjZGE3MDBlZWVkMDFlMWI1ZmEyOTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM2OSw2ICsxMzY5LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmln
YXRpb25JRCk7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0
IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYsIFJlZjxNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVs
YXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE5MjgsNiArMTkyOSw5IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzSW5QcmludGluZ01vZGUgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiB7IGZhbHNlIH07CiAKKyAgICAvLyBT
eW5jaHJvbm91cyBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbi4KKyAgICBSZWZQdHI8TWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRl
bGF5ZWRSZXBseT4gbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeVJlcGx5OworCiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0Owog
ICAgIGJvb2wgbV9zaG91bGRTdXBwcmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRmYjVhOWI1YjMyMmE5MDNkY2NkOTFkMmRhNGU2NzQ2
ZGYwNzViZjMuLjUzZmIxODMyZDVkMzhjYTcwNTg4MzRhOTk0N2EyMmUxZTVkZmY3ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTEwMCw2ICsxMDAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgUG9saWN5
IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+ICh1
aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIGVudW0gV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIERlbGF5ZWQKICAgICBE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3kodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggYzJiMTA0OTU2N2E5NTk2NTM2NWE2MzgyMDE1OTNlNGQ1OTcwZDJhYy4uYTRlZWFjYTA4
MjA3NTI4NzA1MTRmZTE1NzVmNTBmN2Q3NmJkM2M2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC04MTUsNyArODE1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG8KICAg
ICBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSh3ZWJz
aXRlUG9saWNpZXMpLCAqZG9jdW1lbnRMb2FkZXIpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqIGZvcm1T
dGF0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiBmb3Jt
U3RhdGUsIFBvbGljeURlY2lzaW9uTW9kZSBwb2xpY3lEZWNpc2lvbk1vZGUsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZSA/
IG1fZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04ODcs
NiArODg3LDIzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAKICAgICAvLyBOb3RpZnkgdGhl
IFVJUHJvY2Vzcy4KICAgICBSZWY8V2ViRnJhbWU+IHByb3RlY3QoKm1fZnJhbWUpOworCisgICAg
aWYgKHBvbGljeURlY2lzaW9uTW9kZSA9PSBQb2xpY3lEZWNpc2lvbk1vZGU6OlN5bmNocm9ub3Vz
KSB7CisgICAgICAgIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRDsKKyAgICAgICAgUG9saWN5QWN0
aW9uIHBvbGljeUFjdGlvbjsKKyAgICAgICAgRG93bmxvYWRJRCBkb3dubG9hZElEOworICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKKwor
ICAgICAgICBpZiAoIXdlYlBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKG1fZnJhbWUtPmZyYW1lSUQoKSwgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoY29yZUZyYW1lKSwgZG9jdW1lbnRMb2FkZXItPm5h
dmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgb3JpZ2luYXRpbmdGcmFtZUluZm9E
YXRhLCBvcmlnaW5hdGluZ0ZyYW1lICYmIG9yaWdpbmF0aW5nRnJhbWUtPnBhZ2UoKSA/IG9yaWdp
bmF0aW5nRnJhbWUtPnBhZ2UoKS0+cGFnZUlEKCkgOiAwLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQo
KSkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6UmVwbHkobmV3TmF2aWdhdGlvbklELCBwb2xpY3lBY3Rpb24sIGRvd25sb2FkSUQs
IHdlYnNpdGVQb2xpY2llcykpKSB7CisgICAgICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9s
aWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1fZnJhbWUtPmRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBwb2xpY3lBY3Rpb24sIDAsIGRvd25s
b2FkSUQsIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQocG9saWN5
RGVjaXNpb25Nb2RlID09IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKTsKICAgICBp
ZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihtX2ZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbUZyYW1lKGNvcmVGcmFtZSksIGRvY3VtZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdG
cmFtZSAmJiBvcmlnaW5hdGluZ0ZyYW1lLT5wYWdlKCkgPyBvcmlnaW5hdGluZ0ZyYW1lLT5wYWdl
KCktPnBhZ2VJRCgpIDogMCwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdCwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNm
b3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpCiAgICAgICAgIG1f
ZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb246
Oklnbm9yZSwgMCwgeyB9LCB7IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCAyYTZjNmZjZGQ4ZDliOTM4ZGQxNzY1YTFkY2I2NGRmNGM1YTg0NjgzLi43YTdlZjJhOWJiMjE0
YWM3YTE0ZGM5Y2IyYmEwNjAxMDdiNWFjMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwotICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJl
Y2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3Bv
bnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaWREZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzNiNDk5
YThjNThhNWQ0MzVlY2U3MmNmMTQ5MGZkYmU1YmJhOTg5ZS4uYTJjNzkzMmY2ODI2OTk3NmMyOTMz
Njk0YzNlZWRjNjAyOTY1MmRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRp
cmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygp
IGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggYmJjZGE3ODRiYTFkOGM1MDNiODNiMDAzM2VlZjljYjVhYjIxNjIyNi4uMWE0MTEz
NDhhOGViNmM3N2Q4N2VkYWZjZGM0OWVkMTg1OWI1ZjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTkwMCw3ICs5MDAsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aQogICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvbkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVu
ZXIoV1RGTW92ZShmdW5jdGlvbiksIHRyeUFwcExpbmsgPyAoTlNVUkwgKilyZXF1ZXN0LnVybCgp
IDogbmlsKS5nZXQoKV07CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9ybVN0YXRlKiBm
b3JtU3RhdGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIFBvbGljeURlY2lzaW9uTW9kZSwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRX
ZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIEJPT0wgdHJ5QXBwTGluayA9IHNob3VsZFRy
eUFwcExpbmsod2ViVmlldywgYWN0aW9uLCBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAyN2JlZGZjOGRkZDk3Y2ZiNWMyZTBhNGI1ZjEz
ZGNlM2FhZDU2YmM5Li5jOTczNmIxYzhjZDNjNGY5ZjNlMTBkNTBlNWNiYjJjYmRkMmM0YjEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC01NjUsNyArNTY1LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oY29uc3QgTmF2aWdhdGkKICAgICBtX3BvbGljeUxpc3RlbmVyUHJpdmF0ZS0+bV9wb2xpY3lG
dW5jdGlvbihQb2xpY3lBY3Rpb246OlVzZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCwg
Rm9ybVN0YXRlKiBmb3JtU3RhdGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIFdlYkNvcmU6OlBvbGlj
eURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUt
PndlYlZpZXcoKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDliODMzM2JjMWFiOTk2N2I2ZjdlMzlhMjViNzU0
ZmYzNDk4MDg2MmYuLjFhMDMxMDZmMzk3NGZiMDNjMDVkYmVjZDI5MGZkNzZlZTE4NzU4MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMTQ1ODMyZjA1YzFlNDZlZTgwZTdi
M2UwZDBkZjAwZTEwOTEzZWU3Li44ODA0OGQyZDMzYTkxNjRlMzQ2MDdmM2E5YjI3Yzc4M2RlYTZk
MmZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDQtMTYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjI5ODMxKTogQ01ELWNsaWNr
aW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxpbmsgdW5leHBlY3RlZGx5IG9wZW5zIHRoYXQgbGluayBp
biBhIG5ldyB0YWIgYW5kIHRoZSBjdXJyZW50IHRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
OTQyMjEyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmln
YXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24t
cG9saWN5LWlnbm9yZS5odG1sOiBBZGRlZC4KKwogMjAxOC0wNC0xNiAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBjc3MzL2ZpbHRlcnMvYmx1ci12
YXJpb3VzLXJhZGlpLmh0bWwgYXMgYSBjcmFzaCBvbiBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5
LWlnbm9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
ZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NWZhMjVjYjQzNjM5MDdkZDkzNjZlYTdmY2FmOWQyM2UyYzViZWNlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRp
b24tcG9saWN5LWlnbm9yZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorUG9saWN5IGRl
bGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24v
ZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWwjdGVzdCB3aXRoIG5hdmlnYXRp
b24gdHlwZSAnb3RoZXInCitDaGVja3MgdGhhdCB0aGUgY2xpZW50IGNhbiBwcmV2ZW50IGEgZnJh
Z21lbnQgbmF2aWdhdGlvbiB2aWEgdGhlIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
ZGVsZWdhdGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5s
b2NhdGlvbi5ocmVmIGlzICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9mcmFnbWVu
dC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUuaHRtbCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1w
b2xpY3ktaWdub3JlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEyYjE3YmFkOGI0NDE1MTFhMGYyNWRhOTg2
NTI3YWQxNTM0ZWQyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25vcmUuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0IHRoZSBjbGllbnQgY2FuIHByZXZl
bnQgYSBmcmFnbWVudCBuYXZpZ2F0aW9uIHZpYSB0aGUgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiBkZWxlZ2F0ZS4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVl
LCBmYWxzZSk7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGxvY2F0aW9uID0gIiN0ZXN0
IjsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIndpbmRvdy5sb2NhdGlvbi5ocmVmIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZp
Z2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338125</attachid>
            <date>2018-04-17 09:18:02 -0700</date>
            <delta_ts>2018-04-17 11:13:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184678-20180417091801.patch</filename>
            <type>text/plain</type>
            <size>35320</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5OWQzNzAwN2ExMTk1
MGU3MmU3MDI5MWQ0YzExMTRlMDQ0OWIwZC4uMTQ4YTlmNDI3NmQ0Y2M3MzMxNzQzYmQyNDE3YWVk
ZjJkOTNjMWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjIyOTgz
MSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRseSBvcGVu
cyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDY3OAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzk0MjIxMjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnJhbWVudCBuYXZpZ2F0aW9ucyBuZWVkIHRvIGhhcHBlbiBzeW5jaHJv
bm91c2x5IGZvciBXZWItY29tcGF0aWJpbGl0eS4gQmVjYXVzZSBvZiB0aGlzLAorICAgICAgICBy
MjI1NjU3IGFkZGVkIGNvZGUgdG8gbWFrZSBzdXJlIHRoYXQgaWYgdGhlIGNsaWVudCBkb2VzIG5v
dCBtYWtlIHRoZSBuYXZpZ2F0aW9uIHBvbGljeQorICAgICAgICBkZWNpc2lvbiBzeW5jaHJvbm91
c2x5IGZvciBmcmFtZW50IG5hdmlnYXRpb25zLCB0aGVuIHdlJ2xsIHN0b3Agd2FpdGluZyBmb3Ig
dGhlIGNsaWVudAorICAgICAgICBhbmQgcHJvY2VlZCB3aXRoIHRoZSBuYXZpZ2F0aW9uLiBIb3dl
dmVyLCByMjI5ODMxIG1ha2UgdGhlIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAg
IElQQyBkZWNpc2lvbiwgbWVhbmluZyB0aGF0IGV2ZW4gaWYgdGhlIGNsaWVudCByZXNwb25kcyBz
eW5jaHJvbm91c2x5LCBpdCB3b3VsZCBiZQorICAgICAgICBhc3luY2hyb25vdXNseSBmcm9tIFdl
YkNvcmUncyBwb2ludCBvZiB2aWV3LiBBcyBhIHJlc3VsdCwgd2Ugd291bGQgYWx3YXlzIGlnbm9y
ZSB0aGUKKyAgICAgICAgY2xpZW50J3MgcG9saWN5IGRlY2lzaW9uIHdoZW4gZG9pbmcgYSBmcmFn
bWVudCBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMgaXMgYW4gaXNzdWUgb24gaWNsb3VsZC5j
b20gYmVjYXVzZSB0aGUgd2ViLWFwcCBsaW5rcyBhcmUgZnJhZ21lbnQgVVJMcy4gV2hlbiB5b3UK
KyAgICAgICAgQ01EK2NsaWNrIG9uZSBvZiB0aGVzZSBsaW5rLCB3ZSBkbyB0aGUgbmF2aWdhdGlv
biBwb2xpY3kgY2hlY2suIEFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgICAgY2hlY2ssIFNhZmFy
aSByZXNwb25kcyBJR05PUkUgdG8gdGhlIHBvbGljeSBkZWNpc2lvbiBhbmQgaW5zdGVhZCBkZWNp
ZGVzIHRvIGxvYWQgdGhlCisgICAgICAgIGxpbmsgaW4gYSBuZXcgdGFiIChiZWNhdXNlIENNRCBr
ZXkgaXMgcHJlc3NlZCkuIER1ZSB0byB0aGUgYnVnIG1lbnRpb25lZCBhYm92ZSwgd2UKKyAgICAg
ICAgd291bGQgbm90IG9iZXkgdGhlIElHTk9SRSBwb2xpY3kgZGVjaXNpb24gZnJvbSBTYWZhcmkg
YW5kIGxvYWQgdGhlIGxpbmsgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgdGFiLCBldmVuIHRob3Vn
aCBTYWZhcmkgd291bGQgYWxyZWFkeSBiZSBsb2FkaW5nIGl0IGluIGEgbmV3IHRhYi4KKworICAg
ICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgSSByZWludHJvZHVjZWQgYSBzeW5jaHJvbm91cyBj
b2RlIHBhdGggZm9yIG5hdmlnYXRpb24gcG9saWN5CisgICAgICAgIGRlY2lzaW9uIG1ha2luZywg
YmFja2VkIGJ5IHN5bmNocm9ub3VzIElQQy4gVGhpcyBzeW5jaHJvbm91cyBjb2RlIHBhdGggaXMg
bm93IHVzZWQgZm9yCisgICAgICAgIGZyYWdtZW50IG5hdmlnYXRpb25zIHRvIHJlc3RvcmUgcHJl
LXIyMjk4MzEgYmVoYXZpb3IuIElmIHRoZSBjbGllbnQgZG9lcyBub3QgYW5zd2VyCisgICAgICAg
IHN5bmNocm9ub3VzbHksIHdlJ2xsIHByb2NlZWQgd2l0aCB0aGUgbmF2aWdhdGlvbiBhbnl3YXks
IGFzIHdhcyBoYXBwZW5pbmcgcHJlLXIyMjk4MzEuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sCisKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bik6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNo
ZWNrZXIuaDoKKwogMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgbW9yZSBXaW5kb3dQcm94eS1yZWxhdGVkIGxvZ2ljIGZyb20gU2NyaXB0
Q29udHJvbGxlciB0byBXaW5kb3dQcm94eUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTA3YjAwZTdj
YzVhNGE4YzJmMzliZDM5NGU3YjJiZWE5ODUwYjcxNS4uMjg5OTA0NGM5ZDA5NDdkMjFmZGE3N2Zl
ZDkwZjQzODBlZTc1ZDE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wNC0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
Mjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkg
b3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlLWludHJvZHVjZSBzeW5jaHJvbm91cyBjb2RlIHBhdGggd2hp
Y2ggZXhpc3RlZCBwcmUtcjIyOTgzMSBhbmQgdXNlIGl0IGZvciBmcmFnbWVudCBuYXZpZ2F0aW9u
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorCiAyMDE4LTA0LTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gV2ViIEF1dG9tYXRpb246IGFkZCBTUEkgdG8gdGVybWluYXRlIGF1dG9tYXRp
b24gc2Vzc2lvbiBhbmQgZGlzY29ubmVjdCB0aGUgcmVtb3RlIGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGY2YmNmZmFiOWMyZjQ2MjBmYzJhYjBjZTY5N2RlZTE4YTMyY2YwMWYu
LjdjMWE0M2Y5NTRiODY2ZjhjNzcxZWRjZmY5MWUzMzEzNTcxMzUxYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQt
Y2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBs
aW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2NzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM5NDIyMTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBuZXcgcGFyYW1ldGVyIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKToKKwogMjAxOC0wNC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdpbmRvd1Byb3h5IGhhbmRsaW5nIG91dCBvZiBTY3Jp
cHRDb250cm9sbGVyIGFuZCBpbnRvIGEgbmV3IGNsYXNzIG93bmVkIGJ5IEFic3RyYWN0RnJhbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAzMDE4ZmY2OTE1NTk2YjRkM2Q1OGFhMGQ2
Zjk1OTc4MjMxMGExY2M5Li40NmMwZjdhMjFjZWY2OTUzNTFlMTdjM2ZkNzUzYWQzZGEyNGIzNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQt
MTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxpbmsgdW5leHBlY3Rl
ZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJyZW50IHRhYgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njc4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQyMjEyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IHBhcmFtZXRlciB0byBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA0LTEyICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBU
dXJuIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlvbnMgYXMgV2ViIEFuaW1hdGlvbnMg
b24gYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAx
ZWQzY2IxNDFhYjM3NDFkMzBhMDhhMzZlZWY1MjRlNWQwYWVmMGY4Li5iNjFiMjZmZTExNWE0M2I0
YmQ5NjI4MGFjYTdiZjZhZGQ3MTM5ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhCiB7CiB9
CiAKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBib29sLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCit2b2lkIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDA3YzMyYjhjM2VlNzY5MTcwYjJkNWVhNTExNWMzMzljYmNlOGE0OTAuLjM0YTUw
OGFiNThjNmQ2N2FkZTIzNTc3OTYwM2Q0N2Q5ZDQyM2E5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTUsNyArOTUsNyBAQCBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9h
ZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1v
ZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDg2M2Q1OWM3ZDRhOGQyMDFlMTMzMDY0ZmIwZmNjZGQwMjFkZWQz
NGYuLjQwOTg1MGE5ZDYxN2U4NGI0NzM3ZmEyYzg2OGI2YTA4YWEzMDhjYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTI2MCwxMCArMTI2MCw2IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OmlzU3RvcExvYWRpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdl
RGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7
CiB9CiAKLXN0cnVjdCBTaGFyZWRCb29sIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQm9vbD4g
ewotICAgIGJvb2wgdmFsdWUgeyBmYWxzZSB9OwotfTsKLQogdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgRnJhbWVMb2FkVHlwZSBuZXdMb2FkVHlwZSwgRXZlbnQqIGV2ZW50LCBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTEzMzYsMTcgKzEzMzIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxv
YWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgICAgICBvbGREb2N1bWVudExvYWRlci0+
c2V0TGFzdENoZWNrZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgcG9saWN5
Q2hlY2tlcigpLnN0b3BDaGVjaygpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc2V0TG9hZFR5
cGUobmV3TG9hZFR5cGUpOwotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkID0g
YWRvcHRSZWYoKm5ldyBTaGFyZWRCb29sKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNr
TmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIGZhbHNlIC8qIGRpZFJl
Y2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0
YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9u
SGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlmICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQt
PnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZ
ZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICghY29tcGxl
dGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlZC0+dmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9s
bEFmdGVyTmF2aWdhdGlvblBvbGljeShXVEZNb3ZlKHJlcXVlc3QpLCB0cnVlKTsKLSAgICAgICAg
fQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNl
UmVxdWVzdChyZXF1ZXN0KSwgZmFsc2UgLyogZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgKi8s
IG9sZERvY3VtZW50TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsIFt0aGlzLCBwcm90ZWN0ZWRGcmFt
ZSA9IG1ha2VSZWYobV9mcmFtZSldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZv
cm1TdGF0ZSosIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgICAgICBj
b250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3Vs
ZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICB9LCBQb2xpY3lEZWNp
c2lvbk1vZGU6OlN5bmNocm9ub3VzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUx
MiwxNyArMTUwMCw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgICAgIG9sZERvY3Vt
ZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXJDYWxsZWQgPSBhZG9wdFJlZigqbmV3IFNoYXJlZEJvb2wpOwotICAgICAgICBwb2xp
Y3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PnJlcXVlc3QoKSksIGZhbHNlIC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGRE
b2N1bWVudExvYWRlci5nZXQoKSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBt
YWtlUmVmKG1fZnJhbWUpLCBjb21wbGV0aW9uSGFuZGxlckNhbGxlZCA9IGNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVkLmNvcHlSZWYoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9y
bVN0YXRlKiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIHsKLSAgICAgICAgICAgIGlm
ICghY29tcGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXJDYWxsZWQtPnZhbHVlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjb250
aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpZZXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLSAgICAgICAgaWYgKCFjb21wbGV0aW9uSGFuZGxlckNhbGxlZC0+dmFsdWUpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkLT52YWx1ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGxvYWRlci0+cmVx
dWVzdCgpLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tO
YXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSksIGZhbHNl
IC8qIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlICovLCBvbGREb2N1bWVudExvYWRlci5nZXQo
KSwgZm9ybVN0YXRlLCBbdGhpcywgcHJvdGVjdGVkRnJhbWUgPSBtYWtlUmVmKG1fZnJhbWUpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqLCBTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFm
dGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250
aW51ZTo6WWVzKTsKKyAgICAgICAgfSwgUG9saWN5RGVjaXNpb25Nb2RlOjpTeW5jaHJvbm91cyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYTA0NDE5YzdjMzhmMTdhODE1NzdhZGVjZGI1Njk5YjNiZGQ1MzFk
ZC4uM2RhOTBmMjc0MWJmZWQwZWU5MjNmN2U5ZTIzMDVlNDljYzViYjA3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFVSTDsKIGNsYXNzIFdpZGdldDsKIAorZW51bSBjbGFz
cyBQb2xpY3lEZWNpc2lvbk1vZGU7CiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIAogdHlw
ZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IEZyYW1lUG9saWN5RnVuY3Rp
b247CkBAIC0xOTAsNyArMTkxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgZGlk
UmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApp
bmRleCAzNzAyNTgwYzNkMmI5Nzg5MWJkYTBhMDI2NDExYzM3MTBhMGU3ODgwLi44MmQ2ZjY5Nzg2
MWU0YmYzOTZjMjNmMDU4OWQ0MDgzZjRiNzJlODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGJvb2wgZGlk
CiAgICAgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFdURk1vdmUobmV3UmVxdWVzdCksIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlLCBtX2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCksIG51bGxwdHIsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBk
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRm9ybVN0
YXRlKiBmb3JtU3RhdGUsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rp
b24pCit2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVu
dExvYWRlciogbG9hZGVyLCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbiwgUG9saWN5RGVjaXNpb25Nb2RlIHBvbGljeURlY2lz
aW9uTW9kZSkKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dl
cmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7CkBAIC0xNDksNyArMTQ5
LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBkaWRSZWMKICAgICBtX2RlbGVnYXRlSXNEZWNpZGluZ05h
dmlnYXRpb25Qb2xpY3kgPSB0cnVlOwogICAgIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IGFj
dGlvbi5kb3dubG9hZEF0dHJpYnV0ZSgpLmlzRW1wdHkoKSA/IG51bGxBdG9tKCkgOiBhY3Rpb24u
ZG93bmxvYWRBdHRyaWJ1dGUoKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdENvcHkgPSBy
ZXF1ZXN0OwotICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlvbiwgcmVxdWVzdCwgZGlkUmVjZWl2ZVJlZGlyZWN0
UmVzcG9uc2UsIGZvcm1TdGF0ZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiks
IHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihm
b3JtU3RhdGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUp
XShQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICBtX2ZyYW1lLmxvYWRl
cigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rp
b24sIHJlcXVlc3QsIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBmb3JtU3RhdGUsIHBvbGlj
eURlY2lzaW9uTW9kZSwgW3RoaXMsIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbiksIHJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3RDb3B5KSwgZm9ybVN0YXRlID0gbWFrZVJlZlB0cihmb3JtU3Rh
dGUpLCBzdWdnZXN0ZWRGaWxlbmFtZSA9IFdURk1vdmUoc3VnZ2VzdGVkRmlsZW5hbWUpXShQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5kaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCk7CiAKICAgICAg
ICAgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5ID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRleCAyZmRiMjUwMjE5NTZhNTUwMTljNjcyNzNk
ZWYyZjgxMjI5NThkNDk5Li5iMTZjMWVlMjU5NGRkN2RiMTU3ZTQzZWU0ZDgzOTZmNmQ3NWE3Mzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTU2LDYgKzU2LDggQEAg
ZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7CiAgICAgRm9yU3VzcGVuc2lvbgogfTsKIAorZW51
bSBjbGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07
CisKIHVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsK
IHVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgRm9ybVN0YXRlKiwgU2hvdWxkQ29udGludWUpPjsK
IApAQCAtNjUsNyArNjcsNyBAQCBjbGFzcyBQb2xpY3lDaGVja2VyIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKLSAgICB2b2lkIGNoZWNrTmF2aWdhdGlv
blBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZSwgRG9jdW1lbnRMb2FkZXIqLCBGb3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25G
dW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVl
c3QmJiwgYm9vbCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqLCBG
b3JtU3RhdGUqLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmLCBQb2xpY3lEZWNp
c2lvbk1vZGUgPSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgdm9pZCBj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGJvb2wgZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogICAg
IHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTmV3V2lu
ZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggOWY3Y2VjYTUzMjE4N2Q3ZDllYzI1NWNiYzJlOTBjZDFlMzg1
NWI5My4uYmFkOGI5NDk1Y2EzNGZlNjg2ZTZmNDE4NWI4ZTEwZWI3YjdhYzM5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzkyLDYgKzIzOTIsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFj
dGlvbiwgV2ViRnJhbWVQcm94eSYgZnIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChhdXRv
IHN5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5UmVwbHkgPSBXVEZNb3ZlKG1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lSZXBseSkpIHsKKyAgICAgICAgc3luY05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lSZXBseS0+c2VuZChuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAw
LCBhY3Rpb24sIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZS5mcmFtZUlEKCksIGxpc3RlbmVySUQsIGFj
dGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxv
YWRJRCwgd2Vic2l0ZVBvbGljaWVzKSwgbV9wYWdlSUQpOwogfQogCkBAIC0zOTM1LDYgKzM5NDAs
MTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICAgICBtX3Nob3VsZFN1cHByZXNzQXBwTGlu
a3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSBmYWxzZTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmM6OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKK3sKKyAgICBBU1NFUlQoIW1fc3luY05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lSZXBseSk7CisgICAgbV9zeW5jTmF2aWdhdGlvbkFjdGlvblBvbGljeVJl
cGx5ID0gV1RGTW92ZShyZXBseSk7CisKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRp
bmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgbGlzdGVuZXJJRCwg
dXNlckRhdGEpOworCisgICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHJlc3BvbmQgc3luY2hy
b25vdXNseSwgcHJvY2VlZCB3aXRoIHRoZSBsb2FkLgorICAgIGlmIChhdXRvIHN5bmNOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5UmVwbHkgPSBXVEZNb3ZlKG1fc3luY05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lSZXBseSkpCisgICAgICAgIHN5bmNOYXZpZ2F0aW9uQWN0aW9uUG9saWN5UmVwbHktPnNlbmQo
bmF2aWdhdGlvbklELCBQb2xpY3lBY3Rpb246OlVzZSwgeyB9LCB7IH0pOworfQorCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihtX3BhZ2VDbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBlZGI4MzY2NjUzNTEyNDMzODFkMzY1MjY3ZjE1ZDA5NmE1YjZmMzBjLi44N2EwYjU5Y2Qx
NjQyODZmNWJjZGE3MDBlZWVkMDFlMWI1ZmEyOTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTM2OSw2ICsxMzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCk7CiAKICAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEm
LCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRf
dCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYsIFJlZjxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGlj
eSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
VXNlckRhdGEmKTsKQEAgLTE5MjgsNiArMTkyOSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
SW5QcmludGluZ01vZGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1BlcmZvcm1pbmdET01Qcmlu
dE9wZXJhdGlvbiB7IGZhbHNlIH07CiAKKyAgICAvLyBTeW5jaHJvbm91cyBuYXZpZ2F0aW9uIHBv
bGljeSBkZWNpc2lvbi4KKyAgICBSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseT4gbV9zeW5jTmF2aWdh
dGlvbkFjdGlvblBvbGljeVJlcGx5OworCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1f
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0OwogICAgIGJvb2wgbV9zaG91bGRTdXBwcmVz
c0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uIHsgZmFsc2UgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDRmYjVhOWI1YjMyMmE5MDNkY2NkOTFkMmRhNGU2NzQ2ZGYwNzViZjMuLjUzZmIxODMyZDVkMzhj
YTcwNTg4MzRhOTk0N2EyMmUxZTVkZmY3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwMCw2ICsxMDAsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdp
bmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+ICh1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQs
IGVudW0gV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgV2ViS2l0OjpEb3dubG9h
ZElEIGRvd25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRh
PiB3ZWJzaXRlUG9saWNpZXMpIERlbGF5ZWQKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYzJiMTA0OTU2N2E5NTk2NTM2
NWE2MzgyMDE1OTNlNGQ1OTcwZDJhYy4uYTRlZWFjYTA4MjA3NTI4NzA1MTRmZTE1NzVmNTBmN2Q3
NmJkM2M2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04MTUsNyArODE1
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdl
YnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG8KICAgICBXZWJzaXRlUG9saWNpZXNEYXRhOjph
cHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCAqZG9jdW1lbnRM
b2FkZXIpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlv
bkFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGRpZFJlY2VpdmVS
ZWRpcmVjdFJlc3BvbnNlLCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRp
b25BY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBkaWRSZWNlaXZl
UmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIFBvbGljeURlY2lzaW9uTW9k
ZSBwb2xpY3lEZWNpc2lvbk1vZGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsK
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZSA/IG1fZnJhbWUtPnBhZ2UoKSA6IG51bGxw
dHI7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04ODcsNiArODg3LDIzIEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBOYXZpZ2F0CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBSZWY8V2Vi
RnJhbWU+IHByb3RlY3QoKm1fZnJhbWUpOworCisgICAgaWYgKHBvbGljeURlY2lzaW9uTW9kZSA9
PSBQb2xpY3lEZWNpc2lvbk1vZGU6OlN5bmNocm9ub3VzKSB7CisgICAgICAgIHVpbnQ2NF90IG5l
d05hdmlnYXRpb25JRDsKKyAgICAgICAgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbjsKKyAgICAg
ICAgRG93bmxvYWRJRCBkb3dubG9hZElEOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKKworICAgICAgICBpZiAoIXdlYlBhZ2UtPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKG1fZnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJh
bWUoY29yZUZyYW1lKSwgZG9jdW1lbnRMb2FkZXItPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lICYm
IG9yaWdpbmF0aW5nRnJhbWUtPnBhZ2UoKSA/IG9yaWdpbmF0aW5nRnJhbWUtPnBhZ2UoKS0+cGFn
ZUlEKCkgOiAwLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LCBs
aXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmpl
Y3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6UmVwbHkobmV3TmF2aWdh
dGlvbklELCBwb2xpY3lBY3Rpb24sIGRvd25sb2FkSUQsIHdlYnNpdGVQb2xpY2llcykpKSB7Cisg
ICAgICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwg
UG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihs
aXN0ZW5lcklELCBwb2xpY3lBY3Rpb24sIDAsIGRvd25sb2FkSUQsIHsgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQocG9saWN5RGVjaXNpb25Nb2RlID09IFBvbGljeURl
Y2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKTsKICAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihtX2ZyYW1l
LT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSksIGRv
Y3VtZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9yaWdp
bmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdGcmFtZSAmJiBvcmlnaW5hdGluZ0ZyYW1l
LT5wYWdlKCkgPyBvcmlnaW5hdGluZ0ZyYW1lLT5wYWdlKCktPnBhZ2VJRCgpIDogMCwgbmF2aWdh
dGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdCwgbGlzdGVuZXJJRCwgVXNlckRh
dGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2Vy
RGF0YS5nZXQoKSkuZ2V0KCkpKSkpCiAgICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAyYTZjNmZjZGQ4ZDliOTM4ZGQxNzY1
YTFkY2I2NGRmNGM1YTg0NjgzLi43YTdlZjJhOWJiMjE0YWM3YTE0ZGM5Y2IyYmEwNjAxMDdiNWFj
MWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OkZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBX
ZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFs
OworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24mJikgZmluYWw7CiAgICAgdm9pZCBkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzNiNDk5YThjNThhNWQ0MzVlY2U3MmNmMTQ5MGZk
YmU1YmJhOTg5ZS4uYTJjNzkzMmY2ODI2OTk3NmMyOTMzNjk0YzNlZWRjNjAyOTY1MmRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBj
b25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3Jl
OjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNw
YXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggYmJjZGE3ODRiYTFkOGM1
MDNiODNiMDAzM2VlZjljYjVhYjIxNjIyNi4uMWE0MTEzNDhhOGViNmM3N2Q4N2VkYWZjZGM0OWVk
MTg1OWI1ZjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTkwMCw3ICs5MDAs
NyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aQogICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWNpc2lvbkxpc3RlbmVyOnNldFVwUG9saWN5TGlzdGVuZXIoV1RGTW92ZShmdW5jdGlvbiksIHRy
eUFwcExpbmsgPyAoTlNVUkwgKilyZXF1ZXN0LnVybCgpIDogbmlsKS5nZXQoKV07CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIEZyYW1lUG9saWN5RnVu
Y3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rp
b24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9ybVN0YXRlKiBmb3Jt
U3RhdGUsIFBvbGljeURlY2lzaW9uTW9kZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9u
KQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkp
OwogICAgIEJPT0wgdHJ5QXBwTGluayA9IHNob3VsZFRyeUFwcExpbmsod2ViVmlldywgYWN0aW9u
LCBjb3JlKG1fd2ViRnJhbWUuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCAyN2JlZGZjOGRkZDk3Y2ZiNWMyZTBhNGI1ZjEzZGNlM2FhZDU2YmM5Li5jOTczNmIxYzhj
ZDNjNGY5ZjNlMTBkNTBlNWNiYjJjYmRkMmM0YjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC01NjUsNyArNTY1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGkKICAgICBt
X3BvbGljeUxpc3RlbmVyUHJpdmF0ZS0+bV9wb2xpY3lGdW5jdGlvbihQb2xpY3lBY3Rpb246OlVz
ZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBhY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCwgRm9y
bVN0YXRlKiBmb3JtU3RhdGUsIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6
UG9saWN5RGVjaXNpb25Nb2RlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAg
ICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDliODMzM2JjMWFiOTk2N2I2ZjdlMzlhMjViNzU0ZmYzNDk4MDg2MmYuLjFhMDMxMDZmMzk3
NGZiMDNjMDVkYmVjZDI5MGZkNzZlZTE4NzU4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgZnJh
bWVOYW1lLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGRpZFJlY2VpdmVSZWRp
cmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lv
bk1vZGUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNwYXRjaFVuYWJs
ZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiMTQ1ODMyZjA1YzFlNDZlZTgwZTdiM2UwZDBkZjAwZTEwOTEzZWU3Li44ODA0
OGQyZDMzYTkxNjRlMzQ2MDdmM2E5YjI3Yzc4M2RlYTZkMmZmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTgtMDQtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OIChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxp
bmsgdW5leHBlY3RlZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJy
ZW50IHRhYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg0Njc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQyMjEyMj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlv
bi1wb2xpY3ktaWdub3JlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS5odG1sOiBBZGRl
ZC4KKwogMjAxOC0wNC0xNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFyayBjc3MzL2ZpbHRlcnMvYmx1ci12YXJpb3VzLXJhZGlpLmh0bWwgYXMgYSBj
cmFzaCBvbiBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xp
Y3ktaWdub3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWZhMjVjYjQzNjM5MDdkZDkzNjZl
YTdmY2FmOWQyM2UyYzViZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRpb24tcG9saWN5LWlnbm9yZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xp
Y3ktaWdub3JlLmh0bWwjdGVzdCB3aXRoIG5hdmlnYXRpb24gdHlwZSAnb3RoZXInCitDaGVja3Mg
dGhhdCB0aGUgY2xpZW50IGNhbiBwcmV2ZW50IGEgZnJhZ21lbnQgbmF2aWdhdGlvbiB2aWEgdGhl
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gZGVsZWdhdGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5sb2NhdGlvbi5ocmVmIGlzICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZpZ2F0aW9uLXBvbGljeS1pZ25v
cmUuaHRtbCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZnJhZ21l
bnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vZnJhZ21lbnQtbmF2aWdhdGlvbi1wb2xpY3ktaWdub3JlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWEyYjE3YmFkOGI0NDE1MTFhMGYyNWRhOTg2NTI3YWQxNTM0ZWQyNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9mcmFnbWVudC1uYXZp
Z2F0aW9uLXBvbGljeS1pZ25vcmUuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IkNoZWNrcyB0aGF0IHRoZSBjbGllbnQgY2FuIHByZXZlbnQgYSBmcmFnbWVudCBuYXZpZ2F0aW9u
IHZpYSB0aGUgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiBkZWxlZ2F0ZS4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVlLCBmYWxzZSk7CisKK29ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIGxvY2F0aW9uID0gIiN0ZXN0IjsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5sb2NhdGlvbi5o
cmVmIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL2ZyYWdtZW50LW5hdmlnYXRp
b24tcG9saWN5LWlnbm9yZS5odG1sIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0s
IDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>