<?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>170814</bug_id>
          
          <creation_ts>2017-04-13 10:49:40 -0700</creation_ts>
          <short_desc>[MediaStream] Push capabilities across process boundary during UIProcess capture.</short_desc>
          <delta_ts>2020-06-01 14:55:43 -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>New Bugs</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>170846</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297034</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 10:49:40 -0700</bug_when>
    <thetext>[MediaSource] Push capabilities across process boundary during UIProcess capture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297041</commentid>
    <comment_count>1</comment_count>
      <attachid>306998</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 11:12:17 -0700</bug_when>
    <thetext>Created attachment 306998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297046</commentid>
    <comment_count>2</comment_count>
      <attachid>306999</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 11:29:24 -0700</bug_when>
    <thetext>Created attachment 306999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297054</commentid>
    <comment_count>3</comment_count>
      <attachid>307002</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 11:37:28 -0700</bug_when>
    <thetext>Created attachment 307002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297056</commentid>
    <comment_count>4</comment_count>
      <attachid>307002</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-04-13 11:39:42 -0700</bug_when>
    <thetext>Comment on attachment 307002
Patch

Looks fine to me, but a real WK2 reviewer will have to give it an official r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297077</commentid>
    <comment_count>5</comment_count>
      <attachid>307011</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 12:14:32 -0700</bug_when>
    <thetext>Created attachment 307011
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297088</commentid>
    <comment_count>6</comment_count>
      <attachid>307012</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 12:30:49 -0700</bug_when>
    <thetext>Created attachment 307012
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297114</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-04-13 13:28:28 -0700</bug_when>
    <thetext>rdar://problem/31435730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297116</commentid>
    <comment_count>8</comment_count>
      <attachid>307012</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-13 13:30:47 -0700</bug_when>
    <thetext>Comment on attachment 307012
Patch for landing

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:133
&gt; +    RealtimeMediaSourceCapabilities()
&gt; +    {
&gt; +    }

= default;

&gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:152
&gt; +void UserMediaCaptureManagerProxy::capabilities(uint64_t id, std::optional&lt;WebCore::RealtimeMediaSourceCapabilities&gt;&amp; capabilities)

Why not just return a std::optional?

&gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:161
&gt; +    else
&gt; +        capabilities = std::nullopt;

Is it necessary to set capabilities to nullopt here?  If so, why isn&apos;t it done in the early return?

&gt; Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp:144
&gt; +    mutable bool m_capabilitiesInitialized { false };
&gt; +    mutable std::optional&lt;RealtimeMediaSourceCapabilities&gt; m_capabilities;

This is very strange.  std::optional keeps track of whether it is initialized.  If you need more states than that, use WTF::Expected.

&gt; Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp:250
&gt; +    m_process.sendSync(Messages::UserMediaCaptureManagerProxy::Capabilities(id), Messages::UserMediaCaptureManagerProxy::Capabilities::Reply(capabilities), 0);

Why do we need to add another sync message?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297130</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 14:16:08 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #8)
&gt; Comment on attachment 307012 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=307012&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:133
&gt; &gt; +    RealtimeMediaSourceCapabilities()
&gt; &gt; +    {
&gt; &gt; +    }
&gt; 
&gt; = default;

Ok.

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:152
&gt; &gt; +void UserMediaCaptureManagerProxy::capabilities(uint64_t id, std::optional&lt;WebCore::RealtimeMediaSourceCapabilities&gt;&amp; capabilities)
&gt; 
&gt; Why not just return a std::optional?

Because that makes the message binding code super unhappy.

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:161
&gt; &gt; +    else
&gt; &gt; +        capabilities = std::nullopt;
&gt; 
&gt; Is it necessary to set capabilities to nullopt here?  If so, why isn&apos;t it
&gt; done in the early return?

Yes.

&gt; &gt; Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp:144
&gt; &gt; +    mutable bool m_capabilitiesInitialized { false };
&gt; &gt; +    mutable std::optional&lt;RealtimeMediaSourceCapabilities&gt; m_capabilities;
&gt; 
&gt; This is very strange.  std::optional keeps track of whether it is
&gt; initialized.  If you need more states than that, use WTF::Expected.


Alex and I discussed offline and I may have managed to convince him that std::optional&lt;std::unique_ptr&lt;Capabilities&gt;&gt; is OK.

&gt; &gt; Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp:250
&gt; &gt; +    m_process.sendSync(Messages::UserMediaCaptureManagerProxy::Capabilities(id), Messages::UserMediaCaptureManagerProxy::Capabilities::Reply(capabilities), 0);
&gt; 
&gt; Why do we need to add another sync message?

Because the caller expects to receive a reply synchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297142</commentid>
    <comment_count>10</comment_count>
      <attachid>307028</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 14:48:00 -0700</bug_when>
    <thetext>Created attachment 307028
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297244</commentid>
    <comment_count>11</comment_count>
      <attachid>307064</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-13 18:13:49 -0700</bug_when>
    <thetext>Created attachment 307064
Patch for landing

After discussing this with other members of the WebKit team, it became apparent that the best option was to remove the possibility of returning nullptr from RealtimeMediaSource::capabilities().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297383</commentid>
    <comment_count>12</comment_count>
      <attachid>307113</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-14 08:08:06 -0700</bug_when>
    <thetext>Created attachment 307113
Patch for landing

One last version to make the GTK bts happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297394</commentid>
    <comment_count>13</comment_count>
      <attachid>307113</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-14 09:04:55 -0700</bug_when>
    <thetext>Comment on attachment 307113
Patch for landing

Clearing flags on attachment: 307113

Committed r215362: &lt;http://trac.webkit.org/changeset/215362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298570</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-18 19:36:07 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #9)
&gt; (In reply to Alex Christensen from comment #8)
&gt; &gt; Comment on attachment 307012 [details]
&gt; &gt; Patch for landing
&gt; &gt; &gt; Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp:250
&gt; &gt; &gt; +    m_process.sendSync(Messages::UserMediaCaptureManagerProxy::Capabilities(id), Messages::UserMediaCaptureManagerProxy::Capabilities::Reply(capabilities), 0);
&gt; &gt; 
&gt; &gt; Why do we need to add another sync message?
&gt; 
&gt; Because the caller expects to receive a reply synchronously.

Can you go into more detail about this? Adding more synchronous calls is something that should be taken very seriously, and all alternatives should be discussed before going forward with it. Why can&apos;t capabilities be pushed to the WebProcess proactively when the source is created?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658070</commentid>
    <comment_count>15</comment_count>
      <attachid>307002</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-06-01 14:55:43 -0700</bug_when>
    <thetext>Comment on attachment 307002
Patch

Unflagging and obsoleting, since there is a newer patch for landing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306998</attachid>
            <date>2017-04-13 11:12:17 -0700</date>
            <delta_ts>2017-04-13 11:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170814-20170413111216.patch</filename>
            <type>text/plain</type>
            <size>33383</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uZjczNjc5NjFhOTIxZTk3ZGYzZDVkYzhjMzlmMmM0
MDhlMGY5NjExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUncyBubyByZWFsIHJlYXNvbiBmb3IgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyB0byBiZSBSZWZDb3VudGVkIG5vciB0byBrZWVwIHRoZW0gZnJvbQorICAgICAgICBiZWluZyBj
cmVhdGVkIG9uIHRoZSBzdGFjay4gU28gaW4gYWRkaXRpb24gdG8gbWFraW5nIHRoYXQgY2xhc3Mg
Y29kZXItY29tcGxpYW50LCBjaGFuZ2UgYWxsIHRoZQorICAgICAgICBjbGFzc2VzIHRoYXQgdmVu
ZCBjYXBhYmlsaXRpZXMgdG8gdXNlIGEgdW5pcXVlX3B0cjw+IGluc3RlYWQgb2YgYSBSZWZQdHI8
Pi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJp
bGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJh
bmdlOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c3VwcG9ydGVkQ29uc3RyYWludHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c2V0U3Vw
cG9ydGVkQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNh
cGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCiAyMDE3LTA0LTExICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdW01hY10gU3VwcG9ydCBwYWludGluZyBNU0Ug
dmlkZW8tZWxlbWVudCB0byBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNTg4ZDFkN2YxMjdmOTRkYjdm
MTQyMjJiNDdkMDlkYTQ5M2Y4OTZjLi40MWI4MGM3NmI3ZWY5ZTJiZDc0YzllNzRiZGJmZWFmYWM3
Mjg2NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQtMTMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU291cmNlXSBQdXNoIGNh
cGFiaWxpdGllcyBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyeSBkdXJpbmcgVUlQcm9jZXNzIGNhcHR1
cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IGEgbmV3IHN5bmNocm9ub3VzIGdldHRlciBmb3IgY2FwYWJpbGl0aWVzKCksIG1vZGVyYXRlZCBi
eSBvbmx5IHJlcXVlc3RpbmcgdGhlIGNhcGFiaWxpdGllcygpIGNyb3NzLXByb2Nlc3MKKyAgICAg
ICAgdGhlIGZpcnN0IHRpbWUgY2FsbGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdXBwb3J0ZWRDb25zdHJhaW50cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDE3LTA0LTEyICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gcmVuYW1lIC1bV0tXZWJW
aWV3IF9zdG9wTWVkaWFDYXB0dXJlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
CmluZGV4IDE2NzAwMmJlMzE1YTUzYWE5MDM1MTY0YzdmNTIwZTdmNWE1NTQxMTcuLjQzOTRjYzc2
YzVmNmY0MmNjYWM0YTI5NDFmZDcxZWUxNDZhMTExOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRp
YVN0cmVhbVRyYWNrLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpICBmaW5hbDsKICAgICAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVy
biBtX2lzUHJvZHVjaW5nRGF0YTsgfQotICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NldHRpbmdzOyB9CiAgICAgICAgIGJvb2wgYXBwbHlTaXplKGNvbnN0IEludFNpemUmKSBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQ0NzIxOTA1Njlk
ZDU4MWZiMzhjOWY4NDc1NjU5YWQ0ZWRlMTU1MTQuLmYyOTFmMWE0N2Q5NzU2YjZkY2U4MmRjNzVh
YjM2NWVhZTBkMjYyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtNDQsNyArNDQsNyBAQCBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkKIHsKIH0KIAot
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IDllYzdjMjg3OGEz
NzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLjUzNjgzNTY0YTZhZDI1ZmQxMzU2YWVhYTI1
Mzg5MTM4ZjE5MzJkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0NzIzZjc1OGM1ODA2
MWQyYmQ1MWExNWQwYThiM2NiZi4uZjllMmQwMTM1MTM1YzI5MGZiNDY1ZWIyNDYyZmZkZDZiOTZm
MTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlT
dHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMq
IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXgg
ZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uOWJjZjZhNjZlM2NjY2Vi
NjE1MTA5ZmUzZTQ0NTgzNDU2ODZiMGNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9z
b3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1Jl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpj
YXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+Y2FwYWJpbGl0aWVz
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVjOWE5YzMyOTBjZjky
YjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40MDNmZTI3ZjMyNTlmMzUyOWU4Y2EyNGM1NWI0ZTE2YTkz
YjJlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcgKzg3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Q7Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29uc3Q7
CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1lZGlhU291cmNlOjpG
YWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAwN2IwMjFmODZkMjMxZmUy
MTRiOGQ4MWJmZjQ3YWUxYzIyZmJlZDdlLi5kNTk0ZWUwOGU2NTBkOTU1NDQyZWI5YjY5NDBhYjAz
YzYwN2RlZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGlj
OgogICAgIAogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkgY29uc3QgeyByZXR1
cm4gbV9maXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCA9IDA7CiAKICAgICB1c2luZyBTdWNjZXNzSGFuZGxlciA9IHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAppbmRl
eCAyZjIyZDQ4OTRlZGU2ZWUzZjZiOGY2OWMyOTUwZTI3MjIwOTM2ZWFhLi5lNTk2MDg4NDRkYzJh
ZTQ4ZTg5NzIwODhhNGU2ZDZkNGQ5NTFlOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oCkBAIC0xMDEsMTcgKzEwMSw0MCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYpOwor
CiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAgIFZhbHVlVW5pb24g
bV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2FwYWJpbGl0eVZhbHVl
T3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5l
bmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJm1f
bWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9uKSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVlVW5pb24p
KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkKK3sKKyAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdu
b2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9tYXgpLCBzaXplb2Yo
VmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpCisgICAgeworICAgIH0KKworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAgOiBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKHN1cHBvcnRlZENv
bnN0cmFpbnRzKSk7CiAgICAgfQogCiAgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMoKSB7IH0KQEAgLTE2NCwxMiArMTg3LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGdyb3VwSWQoKSB7IHJldHVybiBtX2dyb3VwSWQ7IH0KICAgICB2b2lkIHNldEdyb3Vw
SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgIHsgbV9ncm91cElkID0gaWQ7IH0KICAgICAKLXBy
aXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKQot
ICAgICAgICA6IG1fc3VwcG9ydGVkQ29uc3RyYWludHMoc3VwcG9ydGVkQ29uc3RyYWludHMpCi0g
ICAgewotICAgIH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJh
aW50czsgfQorICAgIHZvaWQgc2V0U3VwcG9ydGVkQ29uc3RyYWludHMoY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgeyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzID0gY29uc3RyYWludHM7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmKTsKKworcHJpdmF0ZToKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1fd2lk
dGg7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX2hlaWdodDsKICAgICBDYXBhYmlsaXR5
VmFsdWVPclJhbmdlIG1fYXNwZWN0UmF0aW87CkBAIC0xODIsOSArMjA2LDQzIEBAIHByaXZhdGU6
CiAgICAgQXRvbWljU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgQXRvbWljU3RyaW5nIG1fZ3JvdXBJ
ZDsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYg
bV9zdXBwb3J0ZWRDb25zdHJhaW50czsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKIH07CiAKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV93aWR0aAorICAgICAg
ICA8PCBtX2hlaWdodAorICAgICAgICA8PCBtX2FzcGVjdFJhdGlvCisgICAgICAgIDw8IG1fZnJh
bWVSYXRlCisgICAgICAgIDw8IG1fZmFjaW5nTW9kZQorICAgICAgICA8PCBtX3ZvbHVtZQorICAg
ICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9zYW1wbGVTaXplCisgICAgICAgIDw8
IG1fZGV2aWNlSWQKKyAgICAgICAgPDwgbV9ncm91cElkCisgICAgICAgIDw8IG1fc3VwcG9ydGVk
Q29uc3RyYWludHM7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fZWNob0NhbmNlbGxhdGlvbik7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2Rl
KGNhcGFiaWxpdGllcy5tX3dpZHRoKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmls
aXRpZXMubV9oZWlnaHQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5t
X2FzcGVjdFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9m
cmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2ZhY2lu
Z01vZGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3ZvbHVtZSkK
KyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxlUmF0ZSkKKyAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxlU2l6ZSkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZGV2aWNlSWQpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2dyb3VwSWQpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3N1cHBvcnRlZENvbnN0cmFpbnRzKQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZUVudW0oY2FwYWJpbGl0aWVzLm1fZWNob0NhbmNlbGxhdGlvbik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAppbmRleCA1
YTRjOWE1Mzc3YzBiMmNkNTJlZjQ1YjViMjZmNGI2MWExODNhNjU0Li5lMWZkMTZmODZjMjc2ZDEy
NjU0YjU5Y2MyNDllMDlmY2MwMjZiYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAt
MTUwLDYgKzE1MSwyMSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlLAorICAgICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6VW5rbm93
biwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0Zh
Y2luZ01vZGU6OlVzZXIsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpFbnZpcm9ubWVudCwKKyAgICAgICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OkxlZnQsCisgICAgICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpS
aWdodAorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3NfaAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKaW5kZXggZWQxM2I0
MmJiYTNlOGI2ODcwYTNlMmU0Y2FjMmFhZmE4MzE5NTFlMC4uMWE2YTk0MjkyYTI2OGQ3MzE0MzEx
NGMyZDIzNzM4NzVlMTZlOGJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKQEAgLTg0
LDcgKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZD
YXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1NhbXBsZUJ1ZmZlckRl
bGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHBy
aXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdz
OwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VP
YnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZXRhaW5QdHI8
QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZp
Y2U+IG1fZGV2aWNlOwogICAgIEludGVycnVwdGlvblJlYXNvbiBtX2ludGVycnVwdGlvbiB7IElu
dGVycnVwdGlvblJlYXNvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCmlu
ZGV4IDVmZWY0NGZjNzE3ODI4MmUwOTliOTQzYjc0YjMxNjg5ODU4MjBkY2EuLjZmY2E5OWQ0YWFh
ZjAwZmUwNmI0MzA3NGZhMWUzNDBjZGJiNGRlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KQEAgLTIyOSwxNyArMjI5LDE3IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN1cHBvcnRlZENvbnN0cmFpCiAKIHZv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoKQogewotICAg
IG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRl
KHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOworICAgIG1fY2FwYWJpbGl0aWVzID0gc3RkOjptYWtl
X3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihzdXBwb3J0ZWRDb25zdHJh
aW50cygpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAKICAgICBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7CiB9CiAKLVJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIEFW
TWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGlmICghbV9j
YXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8QVZNZWRpYUNhcHR1cmVTb3VyY2UmPigq
dGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAgIHJldHVybiBtX2NhcGFiaWxpdGll
czsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIHZvaWQgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2EzZDRmZmQ4ZC4uNzgw
MWI2NmE4OGFhZmE5NGI2ZjkwZDAwZWZiZGNjZTE3NmI2NjI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NTdGF0dXMgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgaWYgKG1f
Y2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIAogICAgIG1fc3VwcG9ydGVkQ29uc3RyYWludHMu
c2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNl
dFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVlKTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFp
bnRzLnNldFN1cHBvcnRzVm9sdW1lKHRydWUpOwogCiAgICAgLy8gRklYTUU6IGZpbmlzaCB0aGlz
LgotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6
Y3JlYXRlKG1fc3VwcG9ydGVkQ29uc3RyYWludHMpOworICAgIG1fY2FwYWJpbGl0aWVzID0gc3Rk
OjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAg
ICAgbV9jYXBhYmlsaXRpZXMtPnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKICAgICBtX2NhcGFi
aWxpdGllcy0+c2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKIAot
ICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0
KCk7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKaW5kZXggNjY3NjhiZTdiNjNhNjRmZWIxZGFiNWQ1ODJkZTUzZTBhYmEzOTNjYy4uNmZiMzE5
MTk3ZDkzNjQ4MjBkZTE5NjdhODg0Yjg1ZjE1ZWZjNGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgc3Vz
cGVuZCgpOwogICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFs
OwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dCBmaW5hbDsKIAogICAgIE9TU3RhdHVzIHNldHVwQXVkaW9Vbml0cygpOwpAQCAtMTI5LDcgKzEy
OSw3IEBAIHByaXZhdGU6CiAgICAgTG9jayBtX3BlbmRpbmdTb3VyY2VRdWV1ZUxvY2s7CiAgICAg
TG9jayBtX2ludGVybmFsU3RhdGVMb2NrOwogCi0gICAgbXV0YWJsZSBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgbXV0YWJsZSBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7CiAgICAgbXV0YWJsZSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMg
bV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9jdXJyZW50U2V0dGluZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmNwcAppbmRleCBlY2ZkNzhlNDNhNTMyZjJkYzZhMzY3NGY5MzcxMjcxMGMzZDg1NGYw
Li41MjQ1Yzc5ZWRjNmI5NDMyODlmMTFiODI3NzNmOGNkZWY3NTdmMzI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMTQwLDkgKzE0MCw5IEBAIHZv
aWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXRTb3VyY2VUcmFjayhydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpBdWRpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+QWRkU2luayh0aGlz
KTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IFJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMqIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0
aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IDdkZGJmMjIyMzAwZDZiOWZl
MjNjOTY5MThmNGVhNzI3NWQ2YzEyMmUuLmQ4OTcxOWIwMzI4NDVhNGNjNWIwYmE2MWNkNGRmMWYz
ZTM1MGQ5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZp
bmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7CiAKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMo
KSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBwcml2
YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdz
OwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gbV9h
dWRpb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApp
bmRleCBkYjlmZDA5ZGMxMDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFmLi5jNjBjZGIwNWRl
MDYzNzcyNzBhMzNjYTAwZGViZWFiZDExZDZkODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSwgdW5zCiAgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpj
cmVhdGUoc2FtcGxlLCByb3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFi
aWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpz
ZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgK
aW5kZXggM2JlMGQ1NGYzM2IwODBhZjI1ZTZmZDliMDVlMjQ1YjVhZTI1ODdmMS4uYjQ3YmI4NWVm
YjE3MDQ4MjA0MDI4M2M5ZGExOGI3NjZiMTRlZTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgp
ICBmaW5hbDsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBj
YXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgpOyB9
CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEltYWdlPiBtX2N1cnJlbnRJ
bWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVk
Q29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50
cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsK
ICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiBtX3Zp
ZGVvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDc3OTBjZTllMmI5NWQ1YWVlMzZjMTc1ODUx
YTNmZjk4MjkxZTFjYzguLjRkZmUxYzUwZmVhODU2ZTMwZDk4ZTgwYzAzNTRhNTFmNTE2Yjg4NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC04MywxNiArODMsMTYgQEAgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2U6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1l
TWVkaWEKIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxp
dGllcygpCiB7Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzOjpjcmVhdGUoc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRp
ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KHN1
cHBvcnRlZENvbnN0cmFpbnRzKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChp
ZCgpKTsKICAgICBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7
CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25z
dAogewogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8TW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UmPigqdGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAg
IHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7
CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmluaXRpYWxpemVTZXR0aW5ncygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggY2RjMzMxZDk4MjBhZTBiZTE1MTk4ODU5ZjE2OWQ2ZGY0NDlmNDdh
Mi4uNTVmNGQ4NzllNGQ4MDNmNGQ5YTQ0NjUyNTY4ZDJjMmZkNjUyNGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aApAQCAtNjgsNyArNjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyog
Y2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgdW5zaWduZWQgbV9k
ZXZpY2VJbmRleCB7IDAgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBjNmY3YWU5YWM0NjZjZWRlNGM5MmIz
YmI4N2Q5NWNiNDg2ZmEyOWIxLi5iNDBkNDdjNDY2ZmFkNGI4MjNhY2Q2ZjUyOGY0YTJmMjIxODY1
ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNDgsNiArMTQ4LDI1IEBA
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QgaWQpCiAgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQogICAgICAgICBpdGVy
LT52YWx1ZS0+c291cmNlKCkuc3RvcFByb2R1Y2luZ0RhdGEoKTsKIH0KKyAgICAKK3ZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+JiBjYXBh
YmlsaXRpZXMpCit7CisgICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZpbmQoaWQpOworICAgIGlm
IChpdGVyID09IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlm
IChhdXRvKiBzb3VyY2VDYXBhYmlsaXRpZXMgPSBpdGVyLT52YWx1ZS0+c291cmNlKCkuY2FwYWJp
bGl0aWVzKCkpCisgICAgICAgIGNhcGFiaWxpdGllcyA9ICpzb3VyY2VDYXBhYmlsaXRpZXM7Cisg
ICAgZWxzZQorICAgICAgICBjYXBhYmlsaXRpZXMgPSBzdGQ6Om51bGxvcHQ7Cit9CisgICAgCit2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN1cHBvcnRlZENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsK
KyAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGNvbnN0cmFpbnRzID0g
aXRlci0+dmFsdWUtPnNvdXJjZSgpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCk7Cit9CiAKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJi
MzVlNTY2NGQ4ZjZkMi4uOTg2NGUwNzdjNDg4NDFiN2E1YTQ3M2UxNDM0YzBlMTFjODM1YjFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1Miw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlk
Q29uc3RyYWludHMpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIGNhcGFiaWxpdGll
cyh1aW50NjRfdCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiYpOworICAgIHZvaWQgc3VwcG9ydGVkQ29uc3RyYWludHModWludDY0X3QsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYpOwogCiAgICAg
Y2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3NGI4Y2JiN2I4YTY5
YjczYjM5N2E5ZTlkMmJjYzBlNzBiMTMxMTVmLi5hMDU4ODM0YjQ3OTcwZWIzYjY1MzY3MDIzYjE3
NzFkYzU2ZWU2MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjUsNCArMjUsNSBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5IHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nl
c3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIENhcGFi
aWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcAppbmRleCBkNGVlMWM0ZWQ3Njk4YTgzZWZjY2VmNTdkOWNlY2UzNzU2YWZiNDliLi5kMGU3
NzlhYjE1MWU5YjRmZDk2Y2I5M2IxMjAzNjEzMjZlMzllZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcApAQCAtNjYsOCArNjYsMjAgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQotICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpIHsgbV9jYXBh
YmlsaXRpZXMgPSBjYXBhYmlsaXRpZXM7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7CisgICAgICAgIGlmICghbV9jYXBh
YmlsaXRpZXNJbml0aWFsaXplZCkgeworICAgICAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKG1fbWFu
YWdlci5jYXBhYmlsaXRpZXMobV9pZCkpOworICAgICAgICAgICAgbV9jYXBhYmlsaXRpZXNJbml0
aWFsaXplZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
LmdldCgpOworICAgIH0KKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhjb25zdCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+JiBjYXBhYmlsaXRp
ZXMpCisgICAgeworICAgICAgICBpZiAoIWNhcGFiaWxpdGllcykKKyAgICAgICAgICAgIG1fY2Fw
YWJpbGl0aWVzLnJlbGVhc2UoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jYXBhYmls
aXRpZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
KGNhcGFiaWxpdGllcy52YWx1ZSgpKTsKKyAgICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5n
czsgfQogICAgIHZvaWQgc2V0U2V0dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncykKQEAgLTEzMSw3ICsxNDMsOCBAQCBwcml2YXRlOgogCiAgICAgdWludDY0
X3QgbV9pZDsKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAg
ICBib29sIG1fY2FwYWJpbGl0aWVzSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAgICBDQVJpbmdCdWZmZXIgbV9yaW5n
QnVmZmVyOwpAQCAtMjM0LDYgKzI0NywxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBtX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQp
LCAwKTsKIH0KIAorc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVzKHVpbnQ2NF90
IGlkKQoreworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzOworICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVzKGlkKSwgTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoY2FwYWJpbGl0aWVzKSwgMCkpCit9CisK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNmEzMjY2NjJhNjM5NzY4NzI4OWI1
NTU1NDFjYTNkZmJkYTYwN2ZjYy4uYmUxZTU1ODk3YWNiYmVkNDg5MWVmYTVhNjZjNjI4NzlhYjA1
YTVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKHVpbnQ2NF90KTsKIAogICAgIGNs
YXNzIFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306999</attachid>
            <date>2017-04-13 11:29:24 -0700</date>
            <delta_ts>2017-04-13 11:37:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170814-20170413112923.patch</filename>
            <type>text/plain</type>
            <size>32910</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uZjczNjc5NjFhOTIxZTk3ZGYzZDVkYzhjMzlmMmM0
MDhlMGY5NjExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUncyBubyByZWFsIHJlYXNvbiBmb3IgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyB0byBiZSBSZWZDb3VudGVkIG5vciB0byBrZWVwIHRoZW0gZnJvbQorICAgICAgICBiZWluZyBj
cmVhdGVkIG9uIHRoZSBzdGFjay4gU28gaW4gYWRkaXRpb24gdG8gbWFraW5nIHRoYXQgY2xhc3Mg
Y29kZXItY29tcGxpYW50LCBjaGFuZ2UgYWxsIHRoZQorICAgICAgICBjbGFzc2VzIHRoYXQgdmVu
ZCBjYXBhYmlsaXRpZXMgdG8gdXNlIGEgdW5pcXVlX3B0cjw+IGluc3RlYWQgb2YgYSBSZWZQdHI8
Pi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJp
bGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJh
bmdlOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c3VwcG9ydGVkQ29uc3RyYWludHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c2V0U3Vw
cG9ydGVkQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNh
cGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCiAyMDE3LTA0LTExICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdW01hY10gU3VwcG9ydCBwYWludGluZyBNU0Ug
dmlkZW8tZWxlbWVudCB0byBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNTg4ZDFkN2YxMjdmOTRkYjdm
MTQyMjJiNDdkMDlkYTQ5M2Y4OTZjLi40MWI4MGM3NmI3ZWY5ZTJiZDc0YzllNzRiZGJmZWFmYWM3
Mjg2NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQtMTMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU291cmNlXSBQdXNoIGNh
cGFiaWxpdGllcyBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyeSBkdXJpbmcgVUlQcm9jZXNzIGNhcHR1
cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IGEgbmV3IHN5bmNocm9ub3VzIGdldHRlciBmb3IgY2FwYWJpbGl0aWVzKCksIG1vZGVyYXRlZCBi
eSBvbmx5IHJlcXVlc3RpbmcgdGhlIGNhcGFiaWxpdGllcygpIGNyb3NzLXByb2Nlc3MKKyAgICAg
ICAgdGhlIGZpcnN0IHRpbWUgY2FsbGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdXBwb3J0ZWRDb25zdHJhaW50cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJj
ZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDE3LTA0LTEyICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gcmVuYW1lIC1bV0tXZWJW
aWV3IF9zdG9wTWVkaWFDYXB0dXJlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
CmluZGV4IDE2NzAwMmJlMzE1YTUzYWE5MDM1MTY0YzdmNTIwZTdmNWE1NTQxMTcuLjQzOTRjYzc2
YzVmNmY0MmNjYWM0YTI5NDFmZDcxZWUxNDZhMTExOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRp
YVN0cmVhbVRyYWNrLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpICBmaW5hbDsKICAgICAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVy
biBtX2lzUHJvZHVjaW5nRGF0YTsgfQotICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NldHRpbmdzOyB9CiAgICAgICAgIGJvb2wgYXBwbHlTaXplKGNvbnN0IEludFNpemUmKSBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQ0NzIxOTA1Njlk
ZDU4MWZiMzhjOWY4NDc1NjU5YWQ0ZWRlMTU1MTQuLmYyOTFmMWE0N2Q5NzU2YjZkY2U4MmRjNzVh
YjM2NWVhZTBkMjYyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtNDQsNyArNDQsNyBAQCBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkKIHsKIH0KIAot
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IDllYzdjMjg3OGEz
NzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLjUzNjgzNTY0YTZhZDI1ZmQxMzU2YWVhYTI1
Mzg5MTM4ZjE5MzJkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0NzIzZjc1OGM1ODA2
MWQyYmQ1MWExNWQwYThiM2NiZi4uZjllMmQwMTM1MTM1YzI5MGZiNDY1ZWIyNDYyZmZkZDZiOTZm
MTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlT
dHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMq
IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXgg
ZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uOWJjZjZhNjZlM2NjY2Vi
NjE1MTA5ZmUzZTQ0NTgzNDU2ODZiMGNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9z
b3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1Jl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpj
YXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+Y2FwYWJpbGl0aWVz
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVjOWE5YzMyOTBjZjky
YjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40MDNmZTI3ZjMyNTlmMzUyOWU4Y2EyNGM1NWI0ZTE2YTkz
YjJlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcgKzg3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Q7Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29uc3Q7
CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1lZGlhU291cmNlOjpG
YWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAwN2IwMjFmODZkMjMxZmUy
MTRiOGQ4MWJmZjQ3YWUxYzIyZmJlZDdlLi5kNTk0ZWUwOGU2NTBkOTU1NDQyZWI5YjY5NDBhYjAz
YzYwN2RlZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGlj
OgogICAgIAogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkgY29uc3QgeyByZXR1
cm4gbV9maXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCA9IDA7CiAKICAgICB1c2luZyBTdWNjZXNzSGFuZGxlciA9IHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaAppbmRl
eCAyZjIyZDQ4OTRlZGU2ZWUzZjZiOGY2OWMyOTUwZTI3MjIwOTM2ZWFhLi5lNTk2MDg4NDRkYzJh
ZTQ4ZTg5NzIwODhhNGU2ZDZkNGQ5NTFlOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oCkBAIC0xMDEsMTcgKzEwMSw0MCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYpOwor
CiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAgIFZhbHVlVW5pb24g
bV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2FwYWJpbGl0eVZhbHVl
T3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5l
bmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oJm1f
bWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9uKSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVlVW5pb24p
KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkKK3sKKyAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdu
b2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9tYXgpLCBzaXplb2Yo
VmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpCisgICAgeworICAgIH0KKworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAgOiBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKHN1cHBvcnRlZENv
bnN0cmFpbnRzKSk7CiAgICAgfQogCiAgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMoKSB7IH0KQEAgLTE2NCwxMiArMTg3LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGdyb3VwSWQoKSB7IHJldHVybiBtX2dyb3VwSWQ7IH0KICAgICB2b2lkIHNldEdyb3Vw
SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgIHsgbV9ncm91cElkID0gaWQ7IH0KICAgICAKLXBy
aXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKQot
ICAgICAgICA6IG1fc3VwcG9ydGVkQ29uc3RyYWludHMoc3VwcG9ydGVkQ29uc3RyYWludHMpCi0g
ICAgewotICAgIH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJh
aW50czsgfQorICAgIHZvaWQgc2V0U3VwcG9ydGVkQ29uc3RyYWludHMoY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykgeyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzID0gY29uc3RyYWludHM7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmKTsKKworcHJpdmF0ZToKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1fd2lk
dGg7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX2hlaWdodDsKICAgICBDYXBhYmlsaXR5
VmFsdWVPclJhbmdlIG1fYXNwZWN0UmF0aW87CkBAIC0xODIsOSArMjA2LDQzIEBAIHByaXZhdGU6
CiAgICAgQXRvbWljU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgQXRvbWljU3RyaW5nIG1fZ3JvdXBJ
ZDsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYg
bV9zdXBwb3J0ZWRDb25zdHJhaW50czsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKIH07CiAKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV93aWR0aAorICAgICAg
ICA8PCBtX2hlaWdodAorICAgICAgICA8PCBtX2FzcGVjdFJhdGlvCisgICAgICAgIDw8IG1fZnJh
bWVSYXRlCisgICAgICAgIDw8IG1fZmFjaW5nTW9kZQorICAgICAgICA8PCBtX3ZvbHVtZQorICAg
ICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9zYW1wbGVTaXplCisgICAgICAgIDw8
IG1fZGV2aWNlSWQKKyAgICAgICAgPDwgbV9ncm91cElkCisgICAgICAgIDw8IG1fc3VwcG9ydGVk
Q29uc3RyYWludHM7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fZWNob0NhbmNlbGxhdGlvbik7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2Rl
KGNhcGFiaWxpdGllcy5tX3dpZHRoKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmls
aXRpZXMubV9oZWlnaHQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5t
X2FzcGVjdFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9m
cmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2ZhY2lu
Z01vZGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3ZvbHVtZSkK
KyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxlUmF0ZSkKKyAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxlU2l6ZSkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZGV2aWNlSWQpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2dyb3VwSWQpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3N1cHBvcnRlZENvbnN0cmFpbnRzKQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZUVudW0oY2FwYWJpbGl0aWVzLm1fZWNob0NhbmNlbGxhdGlvbik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAppbmRleCA1
YTRjOWE1Mzc3YzBiMmNkNTJlZjQ1YjViMjZmNGI2MWExODNhNjU0Li5lMWZkMTZmODZjMjc2ZDEy
NjU0YjU5Y2MyNDllMDlmY2MwMjZiYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIKKyNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAt
MTUwLDYgKzE1MSwyMSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9k
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlLAorICAgICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6VW5rbm93
biwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0Zh
Y2luZ01vZGU6OlVzZXIsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpFbnZpcm9ubWVudCwKKyAgICAgICAgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OkxlZnQsCisgICAgICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpS
aWdodAorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3NfaAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKaW5kZXggZWQxM2I0
MmJiYTNlOGI2ODcwYTNlMmU0Y2FjMmFhZmE4MzE5NTFlMC4uMWE2YTk0MjkyYTI2OGQ3MzE0MzEx
NGMyZDIzNzM4NzVlMTZlOGJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKQEAgLTg0
LDcgKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZD
YXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1NhbXBsZUJ1ZmZlckRl
bGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHBy
aXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdz
OwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VP
YnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZXRhaW5QdHI8
QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZp
Y2U+IG1fZGV2aWNlOwogICAgIEludGVycnVwdGlvblJlYXNvbiBtX2ludGVycnVwdGlvbiB7IElu
dGVycnVwdGlvblJlYXNvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCmlu
ZGV4IDVmZWY0NGZjNzE3ODI4MmUwOTliOTQzYjc0YjMxNjg5ODU4MjBkY2EuLjZmY2E5OWQ0YWFh
ZjAwZmUwNmI0MzA3NGZhMWUzNDBjZGJiNGRlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KQEAgLTIyOSwxNyArMjI5LDE3IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN1cHBvcnRlZENvbnN0cmFpCiAKIHZv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoKQogewotICAg
IG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRl
KHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOworICAgIG1fY2FwYWJpbGl0aWVzID0gc3RkOjptYWtl
X3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihzdXBwb3J0ZWRDb25zdHJh
aW50cygpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAKICAgICBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7CiB9CiAKLVJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIEFW
TWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGlmICghbV9j
YXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8QVZNZWRpYUNhcHR1cmVTb3VyY2UmPigq
dGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAgIHJldHVybiBtX2NhcGFiaWxpdGll
czsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIHZvaWQgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2EzZDRmZmQ4ZC4uNzgw
MWI2NmE4OGFhZmE5NGI2ZjkwZDAwZWZiZGNjZTE3NmI2NjI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NTdGF0dXMgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgaWYgKG1f
Y2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIAogICAgIG1fc3VwcG9ydGVkQ29uc3RyYWludHMu
c2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNl
dFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVlKTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFp
bnRzLnNldFN1cHBvcnRzVm9sdW1lKHRydWUpOwogCiAgICAgLy8gRklYTUU6IGZpbmlzaCB0aGlz
LgotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6
Y3JlYXRlKG1fc3VwcG9ydGVkQ29uc3RyYWludHMpOworICAgIG1fY2FwYWJpbGl0aWVzID0gc3Rk
OjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAg
ICAgbV9jYXBhYmlsaXRpZXMtPnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKICAgICBtX2NhcGFi
aWxpdGllcy0+c2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKIAot
ICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0
KCk7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKaW5kZXggNjY3NjhiZTdiNjNhNjRmZWIxZGFiNWQ1ODJkZTUzZTBhYmEzOTNjYy4uNmZiMzE5
MTk3ZDkzNjQ4MjBkZTE5NjdhODg0Yjg1ZjE1ZWZjNGRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgc3Vz
cGVuZCgpOwogICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFs
OwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dCBmaW5hbDsKIAogICAgIE9TU3RhdHVzIHNldHVwQXVkaW9Vbml0cygpOwpAQCAtMTI5LDcgKzEy
OSw3IEBAIHByaXZhdGU6CiAgICAgTG9jayBtX3BlbmRpbmdTb3VyY2VRdWV1ZUxvY2s7CiAgICAg
TG9jayBtX2ludGVybmFsU3RhdGVMb2NrOwogCi0gICAgbXV0YWJsZSBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgbXV0YWJsZSBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7CiAgICAgbXV0YWJsZSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMg
bV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mg
bV9jdXJyZW50U2V0dGluZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmNwcAppbmRleCBlY2ZkNzhlNDNhNTMyZjJkYzZhMzY3NGY5MzcxMjcxMGMzZDg1NGYw
Li41MjQ1Yzc5ZWRjNmI5NDMyODlmMTFiODI3NzNmOGNkZWY3NTdmMzI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMTQwLDkgKzE0MCw5IEBAIHZv
aWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXRTb3VyY2VUcmFjayhydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpBdWRpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+QWRkU2luayh0aGlz
KTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IFJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMqIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0
aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IDdkZGJmMjIyMzAwZDZiOWZl
MjNjOTY5MThmNGVhNzI3NWQ2YzEyMmUuLmQ4OTcxOWIwMzI4NDVhNGNjNWIwYmE2MWNkNGRmMWYz
ZTM1MGQ5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKQEAg
LTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZp
bmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7CiAKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMo
KSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtNzMsNyArNzMsNyBAQCBwcml2
YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdz
OwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07
CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gbV9h
dWRpb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApp
bmRleCBkYjlmZDA5ZGMxMDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFmLi5jNjBjZGIwNWRl
MDYzNzcyNzBhMzNjYTAwZGViZWFiZDExZDZkODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZSwgdW5zCiAgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpj
cmVhdGUoc2FtcGxlLCByb3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFi
aWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpz
ZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgK
aW5kZXggM2JlMGQ1NGYzM2IwODBhZjI1ZTZmZDliMDVlMjQ1YjVhZTI1ODdmMS4uYjQ3YmI4NWVm
YjE3MDQ4MjA0MDI4M2M5ZGExOGI3NjZiMTRlZTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgp
ICBmaW5hbDsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBj
YXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgpOyB9
CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEltYWdlPiBtX2N1cnJlbnRJ
bWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVk
Q29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50
cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsK
ICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiBtX3Zp
ZGVvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDc3OTBjZTllMmI5NWQ1YWVlMzZjMTc1ODUx
YTNmZjk4MjkxZTFjYzguLjRkZmUxYzUwZmVhODU2ZTMwZDk4ZTgwYzAzNTRhNTFmNTE2Yjg4NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC04MywxNiArODMsMTYgQEAgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2U6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1l
TWVkaWEKIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxp
dGllcygpCiB7Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzOjpjcmVhdGUoc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRp
ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KHN1
cHBvcnRlZENvbnN0cmFpbnRzKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChp
ZCgpKTsKICAgICBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7
CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25z
dAogewogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8TW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UmPigqdGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAg
IHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7
CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmluaXRpYWxpemVTZXR0aW5ncygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggY2RjMzMxZDk4MjBhZTBiZTE1MTk4ODU5ZjE2OWQ2ZGY0NDlmNDdh
Mi4uNTVmNGQ4NzllNGQ4MDNmNGQ5YTQ0NjUyNTY4ZDJjMmZkNjUyNGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aApAQCAtNjgsNyArNjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyog
Y2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpA
QCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgdW5zaWduZWQgbV9k
ZXZpY2VJbmRleCB7IDAgfTsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBjNmY3YWU5YWM0NjZjZWRlNGM5MmIz
YmI4N2Q5NWNiNDg2ZmEyOWIxLi42MzI4Nzc0YTk2ZGY2ZGFkMWU3MzY2MzJmMDdhNWNjYmQ2M2Q5
YjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNDgsNyArMTQ4LDE5IEBA
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QgaWQpCiAgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQogICAgICAgICBpdGVy
LT52YWx1ZS0+c291cmNlKCkuc3RvcFByb2R1Y2luZ0RhdGEoKTsKIH0KLQorICAgIAordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4mIGNh
cGFiaWxpdGllcykKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7CisgICAg
aWYgKGl0ZXIgPT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
aWYgKGF1dG8qIHNvdXJjZUNhcGFiaWxpdGllcyA9IGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5jYXBh
YmlsaXRpZXMoKSkKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gKnNvdXJjZUNhcGFiaWxpdGllczsK
KyAgICBlbHNlCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHN0ZDo6bnVsbG9wdDsKK30KKyAgICAK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA4MTEzMjFkYmFjYTA0
NzVlZDQ3OWYyYmJmYmIzNWU1NjY0ZDhmNmQyLi45MjAyMTdmZDkzM2FiZGQxMjVhYTg1YzUzN2Yz
MzI3OTRhZjAwN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTUyLDYgKzUyLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBT
dHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEo
dWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZv
aWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+Jik7CiAKICAgICBjbGFzcyBTb3VyY2VQcm94eTsKICAg
ICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDc0YjhjYmI3YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIx
MzExNWYuLmEwNTg4MzRiNDc5NzBlYjNiNjUzNjcwMjNiMTc3MWRjNTZlZTYwZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw0ICsyNSw1IEBA
IG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewogICAgIENyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50cykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgU3RvcFBy
b2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCisgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBjYXBhYmlsaXRpZXMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGQ0ZWUxYzRlZDc2
OThhODNlZmNjZWY1N2Q5Y2VjZTM3NTZhZmI0OWIuLmZkYmYyZmFjYjRiZGM3MTM0ZDhlODA3YmM4
Y2ZjNjg4ZmVjYjQ1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC02Niw4ICs2NiwxNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2Uo
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1
ZmZlci5zdG9yYWdlKCkpOyB9Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OyB9Ci0gICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGll
czsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygp
IGNvbnN0IGZpbmFsIHsKKyAgICAgICAgaWYgKCFtX2NhcGFiaWxpdGllc0luaXRpYWxpemVkKSB7
CisgICAgICAgICAgICBtX2NhcGFiaWxpdGllcyA9IG1fbWFuYWdlci5jYXBhYmlsaXRpZXMobV9p
ZCk7CisgICAgICAgICAgICBtX2NhcGFiaWxpdGllc0luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gIW1fY2FwYWJpbGl0aWVzID8gbnVsbHB0ciA6ICZtX2NhcGFi
aWxpdGllcy52YWx1ZSgpOworICAgIH0KKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+JiBj
YXBhYmlsaXRpZXMpCisgICAgeworICAgICAgICBtX2NhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGll
czsKKyAgICB9CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRp
bmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQogICAgIHZvaWQgc2V0U2V0
dGluZ3MoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKQEAgLTEz
MSw3ICsxNDAsOCBAQCBwcml2YXRlOgogCiAgICAgdWludDY0X3QgbV9pZDsKICAgICBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYXBh
YmlsaXRpZXNJbml0aWFsaXplZCB7IGZhbHNlIH07CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFs
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogICAgIENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwogICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7
CkBAIC0yMzQsNiArMjQ0LDEzIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQ
cm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShpZCksIDApOwog
fQogCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQpCit7
CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBjYXBhYmlsaXRpZXM7CisgICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXMoaWQpLCBNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVzOjpSZXBseShjYXBhYmlsaXRp
ZXMpLCAwKTsKKyAgICByZXR1cm4gY2FwYWJpbGl0aWVzOworfQorCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oCmluZGV4IDZhMzI2NjYyYTYzOTc2ODcyODliNTU1NTQxY2EzZGZiZGE2MDdm
Y2MuLmJlMWU1NTg5N2FjYmJlZDQ4OTFlZmE1YTY2YzYyODc5YWIwNWE1ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcyh1aW50NjRfdCk7CiAKICAgICBjbGFzcyBTb3VyY2U7CiAgICAg
ZnJpZW5kIGNsYXNzIFNvdXJjZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307002</attachid>
            <date>2017-04-13 11:37:28 -0700</date>
            <delta_ts>2020-06-01 14:55:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170814-20170413113727.patch</filename>
            <type>text/plain</type>
            <size>34123</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uNDVhMzVlNDk4ZmE2YzRmZWU3YzAxMTExYWY5YmY1
NjE0YTY5ZWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUncyBubyByZWFsIHJlYXNvbiBmb3IgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyB0byBiZSBSZWZDb3VudGVkIG5vciB0byBrZWVwIHRoZW0gZnJvbQorICAgICAgICBiZWluZyBj
cmVhdGVkIG9uIHRoZSBzdGFjay4gU28gaW4gYWRkaXRpb24gdG8gbWFraW5nIHRoYXQgY2xhc3Mg
Y29kZXItY29tcGxpYW50LCBjaGFuZ2UgYWxsIHRoZQorICAgICAgICBjbGFzc2VzIHRoYXQgdmVu
ZCBjYXBhYmlsaXRpZXMgdG8gdXNlIGEgdW5pcXVlX3B0cjw+IGluc3RlYWQgb2YgYSBSZWZQdHI8
Pi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJp
bGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJh
bmdlOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c3VwcG9ydGVkQ29uc3RyYWludHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c2V0U3Vw
cG9ydGVkQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNh
cGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOgorCiAyMDE3LTA0LTExICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdW01hY10gU3VwcG9ydCBw
YWludGluZyBNU0UgdmlkZW8tZWxlbWVudCB0byBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNTg4ZDFk
N2YxMjdmOTRkYjdmMTQyMjJiNDdkMDlkYTQ5M2Y4OTZjLi40MWI4MGM3NmI3ZWY5ZTJiZDc0Yzll
NzRiZGJmZWFmYWM3Mjg2NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQt
MTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU291
cmNlXSBQdXNoIGNhcGFiaWxpdGllcyBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyeSBkdXJpbmcgVUlQ
cm9jZXNzIGNhcHR1cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGEgbmV3IHN5bmNocm9ub3VzIGdldHRlciBmb3IgY2FwYWJpbGl0aWVzKCks
IG1vZGVyYXRlZCBieSBvbmx5IHJlcXVlc3RpbmcgdGhlIGNhcGFiaWxpdGllcygpIGNyb3NzLXBy
b2Nlc3MKKyAgICAgICAgdGhlIGZpcnN0IHRpbWUgY2FsbGVkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdXBwb3J0ZWRDb25zdHJh
aW50cyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDE3LTA0LTEyICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gcmVu
YW1lIC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5oCmluZGV4IDE2NzAwMmJlMzE1YTUzYWE5MDM1MTY0YzdmNTIwZTdmNWE1NTQx
MTcuLjQzOTRjYzc2YzVmNmY0MmNjYWM0YTI5NDFmZDcxZWUxNDZhMTExOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZh
c0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICAgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpICBmaW5hbDsKICAgICAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBj
b25zdCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YTsgfQotICAgICAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgICAgIGJvb2wgYXBwbHlTaXplKGNvbnN0IElu
dFNpemUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4
IGQ0NzIxOTA1NjlkZDU4MWZiMzhjOWY4NDc1NjU5YWQ0ZWRlMTU1MTQuLmYyOTFmMWE0N2Q5NzU2
YjZkY2U4MmRjNzVhYjM2NWVhZTBkMjYyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtNDQs
NyArNDQsNyBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNl
KCkKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4
IDllYzdjMjg3OGEzNzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLjUzNjgzNTY0YTZhZDI1
ZmQxMzU2YWVhYTI1Mzg5MTM4ZjE5MzJkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJp
bGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0
NzIzZjc1OGM1ODA2MWQyYmQ1MWExNWQwYThiM2NiZi4uZjllMmQwMTM1MTM1YzI5MGZiNDY1ZWIy
NDYyZmZkZDZiOTZmMTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoZW1wdHlTdHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7
IH0KICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHAKaW5kZXggZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uOWJj
ZjZhNjZlM2NjY2ViNjE1MTA5ZmUzZTQ0NTgzNDU2ODZiMGNkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9zb3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVz
KCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+
Y2FwYWJpbGl0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVj
OWE5YzMyOTBjZjkyYjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40MDNmZTI3ZjMyNTlmMzUyOWU4Y2Ey
NGM1NWI0ZTE2YTkzYjJlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcg
Kzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3Q7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0
aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpGYWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAwN2Iw
MjFmODZkMjMxZmUyMTRiOGQ4MWJmZjQ3YWUxYzIyZmJlZDdlLi5kNTk0ZWUwOGU2NTBkOTU1NDQy
ZWI5YjY5NDBhYjAzYzYwN2RlZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xMDcsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGll
cygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MoKSBjb25zdCA9IDA7CiAKICAgICB1c2luZyBTdWNjZXNzSGFuZGxlciA9
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMuaAppbmRleCAyZjIyZDQ4OTRlZGU2ZWUzZjZiOGY2OWMyOTUwZTI3MjIwOTM2ZWFhLi5l
NTk2MDg4NDRkYzJhZTQ4ZTg5NzIwODhhNGU2ZDZkNGQ5NTFlOTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCkBAIC0xMDEsMTcgKzEwMSw0MCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVl
T3JSYW5nZSYpOworCiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAg
IFZhbHVlVW5pb24gbV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2Fw
YWJpbGl0eVZhbHVlT3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oJm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1
ZVVuaW9uKSk7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9m
KFZhbHVlVW5pb24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkK
K3sKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDx1aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVV
bmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4
ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9t
YXgpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMp
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpCisgICAgeworICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAg
OiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KHN1cHBvcnRlZENvbnN0cmFpbnRzKSk7CiAgICAgfQogCiAgICAgflJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMoKSB7IH0KQEAgLTE2NCwxMiArMTg3LDEzIEBAIHB1YmxpYzoKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGdyb3VwSWQoKSB7IHJldHVybiBtX2dyb3VwSWQ7IH0KICAgICB2
b2lkIHNldEdyb3VwSWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgIHsgbV9ncm91cElkID0gaWQ7
IH0KICAgICAKLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENv
bnN0cmFpbnRzKQotICAgICAgICA6IG1fc3VwcG9ydGVkQ29uc3RyYWludHMoc3VwcG9ydGVkQ29u
c3RyYWludHMpCi0gICAgewotICAgIH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBw
b3J0ZWRDb25zdHJhaW50czsgfQorICAgIHZvaWQgc2V0U3VwcG9ydGVkQ29uc3RyYWludHMoY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykg
eyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHM7IH0KIAorICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKKworcHJpdmF0ZToKICAgICBDYXBhYmlsaXR5VmFsdWVP
clJhbmdlIG1fd2lkdGg7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX2hlaWdodDsKICAg
ICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1fYXNwZWN0UmF0aW87CkBAIC0xODIsOSArMjA2LDQz
IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgQXRvbWljU3Ry
aW5nIG1fZ3JvdXBJZDsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyYgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV93
aWR0aAorICAgICAgICA8PCBtX2hlaWdodAorICAgICAgICA8PCBtX2FzcGVjdFJhdGlvCisgICAg
ICAgIDw8IG1fZnJhbWVSYXRlCisgICAgICAgIDw8IG1fZmFjaW5nTW9kZQorICAgICAgICA8PCBt
X3ZvbHVtZQorICAgICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9zYW1wbGVTaXpl
CisgICAgICAgIDw8IG1fZGV2aWNlSWQKKyAgICAgICAgPDwgbV9ncm91cElkCisgICAgICAgIDw8
IG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fZWNob0Nh
bmNlbGxhdGlvbik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCit7CisgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3dpZHRoKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjYXBhYmlsaXRpZXMubV9oZWlnaHQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNh
cGFiaWxpdGllcy5tX2FzcGVjdFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBh
YmlsaXRpZXMubV9mcmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxp
dGllcy5tX2ZhY2luZ01vZGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGll
cy5tX3ZvbHVtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2Ft
cGxlUmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxl
U2l6ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZGV2aWNlSWQp
CisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2dyb3VwSWQpCisgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3N1cHBvcnRlZENvbnN0cmFpbnRz
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZUVudW0oY2FwYWJpbGl0aWVzLm1fZWNob0NhbmNl
bGxhdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaAppbmRleCA1YTRjOWE1Mzc3YzBiMmNkNTJlZjQ1YjViMjZmNGI2MWExODNhNjU0Li5lMWZk
MTZmODZjMjc2ZDEyNjU0YjU5Y2MyNDllMDlmY2MwMjZiYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMu
aCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgpAQCAtMTUwLDYgKzE1MSwyMSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZp
ZGVvRmFjaW5nTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlLAor
ICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5n
TW9kZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzOjpWaWRlb0ZhY2luZ01vZGU6OlVzZXIsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpFbnZpcm9ubWVudCwKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6Okxl
ZnQsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9G
YWNpbmdNb2RlOjpSaWdodAorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3NfaAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgK
aW5kZXggZWQxM2I0MmJiYTNlOGI2ODcwYTNlMmU0Y2FjMmFhZmE4MzE5NTFlMC4uMWE2YTk0Mjky
YTI2OGQ3MzE0MzExNGMyZDIzNzM4NzVlMTZlOGJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291
cmNlLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgIEFWQ2FwdHVyZURldmljZSAq
ZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KIAogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2Fw
YWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVy
RGVsZWdhdGUoQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1Nh
bXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwpAQCAtMTA0LDcg
KzEwNCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3Vy
cmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNh
cHR1cmVTb3VyY2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAg
ICBSZXRhaW5QdHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxB
VkNhcHR1cmVEZXZpY2U+IG1fZGV2aWNlOwogICAgIEludGVycnVwdGlvblJlYXNvbiBtX2ludGVy
cnVwdGlvbiB7IEludGVycnVwdGlvblJlYXNvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJl
U291cmNlLm1tCmluZGV4IDVmZWY0NGZjNzE3ODI4MmUwOTliOTQzYjc0YjMxNjg5ODU4MjBkY2Eu
LjZmY2E5OWQ0YWFhZjAwZmUwNmI0MzA3NGZhMWUzNDBjZGJiNGRlMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRp
YUNhcHR1cmVTb3VyY2UubW0KQEAgLTIyOSwxNyArMjI5LDE3IEBAIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN1cHBvcnRlZENv
bnN0cmFpCiAKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoKQogewotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllczo6Y3JlYXRlKHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOworICAgIG1fY2FwYWJpbGl0aWVz
ID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihzdXBw
b3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQo
KSk7CiAKICAgICBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7
CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMqIEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewog
ICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8QVZNZWRpYUNhcHR1
cmVTb3VyY2UmPigqdGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAgIHJldHVybiBt
X2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIHZv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2Ez
ZDRmZmQ4ZC4uNzgwMWI2NmE4OGFhZmE5NGI2ZjkwZDAwZWZiZGNjZTE3NmI2NjI0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwog
fQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMqIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7
CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
CisgICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIAogICAgIG1fc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKICAgICBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzLnNldFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVlKTsKICAgICBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzVm9sdW1lKHRydWUpOwogCiAgICAgLy8gRklYTUU6
IGZpbmlzaCB0aGlzLgotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllczo6Y3JlYXRlKG1fc3VwcG9ydGVkQ29uc3RyYWludHMpOworICAgIG1fY2FwYWJp
bGl0aWVzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PihtX3N1cHBvcnRlZENvbnN0cmFpbnRzKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNl
SWQoaWQoKSk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsK
ICAgICBtX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4w
LCAxLjApKTsKIAotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBh
YmlsaXRpZXMuZ2V0KCk7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKaW5kZXggNjY3NjhiZTdiNjNhNjRmZWIxZGFiNWQ1ODJkZTUzZTBhYmEz
OTNjYy4uNmZiMzE5MTk3ZDkzNjQ4MjBkZTE5NjdhODg0Yjg1ZjE1ZWZjNGRjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAg
T1NTdGF0dXMgc3VzcGVuZCgpOwogICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCi0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZp
bmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygp
IGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBjb25zdCBmaW5hbDsKIAogICAgIE9TU3RhdHVzIHNldHVwQXVkaW9Vbml0cygpOwpA
QCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgTG9jayBtX3BlbmRpbmdTb3VyY2VRdWV1
ZUxvY2s7CiAgICAgTG9jayBtX2ludGVybmFsU3RhdGVMb2NrOwogCi0gICAgbXV0YWJsZSBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAg
bXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
bV9jYXBhYmlsaXRpZXM7CiAgICAgbXV0YWJsZSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlLmNwcAppbmRleCBlY2ZkNzhlNDNhNTMyZjJkYzZhMzY3NGY5Mzcx
MjcxMGMzZDg1NGYwLi41MjQ1Yzc5ZWRjNmI5NDMyODlmMTFiODI3NzNmOGNkZWY3NTdmMzI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMTQwLDkg
KzE0MCw5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXRTb3VyY2VUcmFj
ayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+
QWRkU2luayh0aGlzKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1Jl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cisg
ICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IDdkZGJm
MjIyMzAwZDZiOWZlMjNjOTY5MThmNGVhNzI3NWQ2YzEyMmUuLmQ4OTcxOWIwMzI4NDVhNGNjNWIw
YmE2MWNkNGRmMWYzZTM1MGQ5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7CiAK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2Fw
YWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtNzMsNyAr
NzMsNyBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3Vy
cmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0
YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0lu
dGVyZmFjZT4gbV9hdWRpb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlLmNwcAppbmRleCBkYjlmZDA5ZGMxMDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFm
Li5jNjBjZGIwNWRlMDYzNzcyNzBhMzNjYTAwZGViZWFiZDExZDZkODQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZv
aWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSwgdW5zCiAgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlLCByb3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpj
YXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9
CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKaW5kZXggM2JlMGQ1NGYzM2IwODBhZjI1ZTZmZDliMDVlMjQ1YjVhZTI1ODdm
MS4uYjQ3YmI4NWVmYjE3MDQ4MjA0MDI4M2M5ZGExOGI3NjZiMTRlZTE3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSgpICBmaW5hbDsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAK
ICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFp
bnRzLmdldCgpOyB9CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEltYWdl
PiBtX2N1cnJlbnRJbWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJy
ZW50U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
IG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRh
IHsgZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlPiBtX3ZpZGVvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZU93ci5oCmluZGV4IGE4Zjc4ZTIyMjM1ZTAwY2Y0NDFjOTBkYjM1ZWNkZDQ3ZWZiYzlmMDIu
LjgzMGY0NGRjMTgyYzBmZjE2NDFlNzkzMTk4MjI1YWRmY2Q2NjMxN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZU93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCkBAIC03Miw3ICs3Miw3IEBAIFJlYWx0
aW1lTWVkaWFTb3VyY2VPd3IoY29uc3QgU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBTCiAgICAgICAgIHNldE11dGVkKGZhbHNlKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICZtX2NhcGFiaWxpdGllczsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE93ck1lZGlhU291cmNlKiBt
ZWRpYVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KQEAgLTg2LDcgKzg2
LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIE93ck1lZGlhU291
cmNlKiBtX21lZGlhU291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA3NzkwY2U5ZTJi
OTVkNWFlZTM2YzE3NTg1MWEzZmY5ODI5MWUxY2M4Li40ZGZlMWM1MGZlYTg1NmUzMGQ5OGU4MGMw
MzU0YTUxZjUxNmI4ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtODMsMTYgKzgzLDE2IEBAIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJp
bmcmIGlkLCBSZWFsdGltZU1lZGlhCiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Omlu
aXRpYWxpemVDYXBhYmlsaXRpZXMoKQogewotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwor
ICAgIG1fY2FwYWJpbGl0aWVzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPihzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBtX2NhcGFiaWxpdGll
cy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygqbV9jYXBh
YmlsaXRpZXMuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2Fw
YWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKQogICAgICAgICBj
b25zdF9jYXN0PE1vY2tSZWFsdGltZU1lZGlhU291cmNlJj4oKnRoaXMpLmluaXRpYWxpemVDYXBh
YmlsaXRpZXMoKTsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzLmdldCgpOwogfQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjppbml0
aWFsaXplU2V0dGluZ3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGNkYzMzMWQ5ODIwYWUwYmUxNTE5ODg1
OWYxNjlkNmRmNDQ5ZjQ3YTIuLjU1ZjRkODc5ZTRkODAzZjRkOWE0NDY1MjU2OGQyYzJmZDY1MjRk
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
c3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3Ry
YWludHMuZ2V0KCk7IH0KQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2Fw
YWJpbGl0aWVzOwogICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwog
ICAgIHVuc2lnbmVkIG1fZGV2aWNlSW5kZXggeyAwIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5n
RGF0YSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzZmN2Fl
OWFjNDY2Y2VkZTRjOTJiM2JiODdkOTVjYjQ4NmZhMjliMS4uNjMyODc3NGE5NmRmNmRhZDFlNzM2
NjMyZjA3YTVjY2JkNjNkOWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAt
MTQ4LDcgKzE0OCwxOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQ
cm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIGlmIChpdGVyICE9IG1fcHJveGllcy5lbmQo
KSkKICAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0b3BQcm9kdWNpbmdEYXRhKCk7CiB9
Ci0KKyAgICAKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVz
KHVpbnQ2NF90IGlkLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+JiBjYXBhYmlsaXRpZXMpCit7CisgICAgYXV0byBpdGVyID0gbV9wcm94aWVz
LmZpbmQoaWQpOworICAgIGlmIChpdGVyID09IG1fcHJveGllcy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIGlmIChhdXRvKiBzb3VyY2VDYXBhYmlsaXRpZXMgPSBpdGVyLT52YWx1
ZS0+c291cmNlKCkuY2FwYWJpbGl0aWVzKCkpCisgICAgICAgIGNhcGFiaWxpdGllcyA9ICpzb3Vy
Y2VDYXBhYmlsaXRpZXM7CisgICAgZWxzZQorICAgICAgICBjYXBhYmlsaXRpZXMgPSBzdGQ6Om51
bGxvcHQ7Cit9CisgICAgCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5k
ZXggODExMzIxZGJhY2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMi4uOTIwMjE3ZmQ5MzNh
YmRkMTI1YWE4NWM1MzdmMzMyNzk0YWYwMDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CkBAIC01Miw2ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJv
b2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOwogICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90KTsKKyAgICB2b2lkIGNhcGFiaWxpdGllcyh1aW50NjRfdCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiYpOwogCiAgICAgY2xhc3Mg
U291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3NGI4Y2JiN2I4YTY5YjczYjM5
N2E5ZTlkMmJjYzBlNzBiMTMxMTVmLi5hMDU4ODM0YjQ3OTcwZWIzYjY1MzY3MDIzYjE3NzFkYzU2
ZWU2MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjUsNCArMjUsNSBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIENhcGFiaWxpdGll
cyh1aW50NjRfdCBpZCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApp
bmRleCBkNGVlMWM0ZWQ3Njk4YTgzZWZjY2VmNTdkOWNlY2UzNzU2YWZiNDliLi5mZGJmMmZhY2I0
YmRjNzEzNGQ4ZTgwN2JjOGNmYzY4OGZlY2I0NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApA
QCAtNjYsOCArNjYsMTcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NhcGFiaWxpdGllczsgfQotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpIHsgbV9jYXBhYmlsaXRp
ZXMgPSBjYXBhYmlsaXRpZXM7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7CisgICAgICAgIGlmICghbV9jYXBhYmlsaXRp
ZXNJbml0aWFsaXplZCkgeworICAgICAgICAgICAgbV9jYXBhYmlsaXRpZXMgPSBtX21hbmFnZXIu
Y2FwYWJpbGl0aWVzKG1faWQpOworICAgICAgICAgICAgbV9jYXBhYmlsaXRpZXNJbml0aWFsaXpl
ZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICFtX2NhcGFiaWxpdGllcyA/IG51
bGxwdHIgOiAmbV9jYXBhYmlsaXRpZXMudmFsdWUoKTsKKyAgICB9CisgICAgdm9pZCBzZXRDYXBh
YmlsaXRpZXMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiYgY2FwYWJpbGl0aWVzKQorICAgIHsKKyAgICAgICAgbV9jYXBhYmlsaXRp
ZXMgPSBjYXBhYmlsaXRpZXM7CisgICAgfQogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0K
ICAgICB2b2lkIHNldFNldHRpbmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MpCkBAIC0xMzEsNyArMTQwLDggQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1f
aWQ7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgbXV0
YWJsZSBib29sIG1fY2FwYWJpbGl0aWVzSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OworICAgIG11dGFi
bGUgc3RkOjpvcHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFi
aWxpdGllczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKICAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAgICBDQVJpbmdCdWZm
ZXIgbV9yaW5nQnVmZmVyOwpAQCAtMjM0LDYgKzI0NCwxMyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBtX3Byb2Nlc3Mu
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2lu
Z0RhdGEoaWQpLCAwKTsKIH0KIAorc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVz
KHVpbnQ2NF90IGlkKQoreworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzOworICAgIG1fcHJvY2Vzcy5zZW5kU3lu
YyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q2FwYWJpbGl0aWVzKGlk
KSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGllczo6
UmVwbHkoY2FwYWJpbGl0aWVzKSwgMCk7CisgICAgcmV0dXJuIGNhcGFiaWxpdGllczsKK30KKwog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA2YTMyNjY2MmE2Mzk3Njg3Mjg5YjU1
NTU0MWNhM2RmYmRhNjA3ZmNjLi5iZTFlNTU4OTdhY2JiZWQ0ODkxZWZhNWE2NmM2Mjg3OWFiMDVh
NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC03MCw2ICs3MCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSh1aW50NjRfdCk7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXModWludDY0X3QpOwogCiAgICAgY2xh
c3MgU291cmNlOwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307011</attachid>
            <date>2017-04-13 12:14:32 -0700</date>
            <delta_ts>2017-04-13 12:31:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170814-20170413121431.patch</filename>
            <type>text/plain</type>
            <size>34124</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uNDVhMzVlNDk4ZmE2YzRmZWU3YzAxMTExYWY5YmY1
NjE0YTY5ZWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUncyBubyByZWFsIHJlYXNvbiBmb3IgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyB0byBiZSBSZWZDb3VudGVkIG5vciB0byBrZWVwIHRoZW0gZnJvbQorICAgICAgICBiZWluZyBj
cmVhdGVkIG9uIHRoZSBzdGFjay4gU28gaW4gYWRkaXRpb24gdG8gbWFraW5nIHRoYXQgY2xhc3Mg
Y29kZXItY29tcGxpYW50LCBjaGFuZ2UgYWxsIHRoZQorICAgICAgICBjbGFzc2VzIHRoYXQgdmVu
ZCBjYXBhYmlsaXRpZXMgdG8gdXNlIGEgdW5pcXVlX3B0cjw+IGluc3RlYWQgb2YgYSBSZWZQdHI8
Pi4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJp
bGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXBhYmlsaXR5VmFsdWVPclJh
bmdlOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c3VwcG9ydGVkQ29uc3RyYWludHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6c2V0U3Vw
cG9ydGVkQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNh
cGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOgorCiAyMDE3LTA0LTExICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdW01hY10gU3VwcG9ydCBw
YWludGluZyBNU0UgdmlkZW8tZWxlbWVudCB0byBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNTg4ZDFk
N2YxMjdmOTRkYjdmMTQyMjJiNDdkMDlkYTQ5M2Y4OTZjLi40MWI4MGM3NmI3ZWY5ZTJiZDc0Yzll
NzRiZGJmZWFmYWM3Mjg2NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQt
MTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU291
cmNlXSBQdXNoIGNhcGFiaWxpdGllcyBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyeSBkdXJpbmcgVUlQ
cm9jZXNzIGNhcHR1cmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzA4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGEgbmV3IHN5bmNocm9ub3VzIGdldHRlciBmb3IgY2FwYWJpbGl0aWVzKCks
IG1vZGVyYXRlZCBieSBvbmx5IHJlcXVlc3RpbmcgdGhlIGNhcGFiaWxpdGllcygpIGNyb3NzLXBy
b2Nlc3MKKyAgICAgICAgdGhlIGZpcnN0IHRpbWUgY2FsbGVkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdXBwb3J0ZWRDb25zdHJh
aW50cyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDE3LTA0LTEyICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gcmVu
YW1lIC1bV0tXZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5oCmluZGV4IDE2NzAwMmJlMzE1YTUzYWE5MDM1MTY0YzdmNTIwZTdmNWE1NTQx
MTcuLjQzOTRjYzc2YzVmNmY0MmNjYWM0YTI5NDFmZDcxZWUxNDZhMTExOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZh
c0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICAgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpICBmaW5hbDsKICAgICAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBj
b25zdCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YTsgfQotICAgICAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgICAgIGJvb2wgYXBwbHlTaXplKGNvbnN0IElu
dFNpemUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4
IGQ0NzIxOTA1NjlkZDU4MWZiMzhjOWY4NDc1NjU5YWQ0ZWRlMTU1MTQuLmYyOTFmMWE0N2Q5NzU2
YjZkY2U4MmRjNzVhYjM2NWVhZTBkMjYyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtNDQs
NyArNDQsNyBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNl
KCkKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4
IDllYzdjMjg3OGEzNzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLjUzNjgzNTY0YTZhZDI1
ZmQxMzU2YWVhYTI1Mzg5MTM4ZjE5MzJkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJp
bGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0
NzIzZjc1OGM1ODA2MWQyYmQ1MWExNWQwYThiM2NiZi4uZjllMmQwMTM1MTM1YzI5MGZiNDY1ZWIy
NDYyZmZkZDZiOTZmMTFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoZW1wdHlTdHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7
IH0KICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHAKaW5kZXggZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uOWJj
ZjZhNjZlM2NjY2ViNjE1MTA5ZmUzZTQ0NTgzNDU2ODZiMGNkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9zb3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVz
KCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+
Y2FwYWJpbGl0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVj
OWE5YzMyOTBjZjkyYjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40MDNmZTI3ZjMyNTlmMzUyOWU4Y2Ey
NGM1NWI0ZTE2YTkzYjJlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcg
Kzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3Q7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0
aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpGYWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCAwN2Iw
MjFmODZkMjMxZmUyMTRiOGQ4MWJmZjQ3YWUxYzIyZmJlZDdlLi5kNTk0ZWUwOGU2NTBkOTU1NDQy
ZWI5YjY5NDBhYjAzYzYwN2RlZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xMDcsNyArMTA3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGll
cygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MoKSBjb25zdCA9IDA7CiAKICAgICB1c2luZyBTdWNjZXNzSGFuZGxlciA9
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMuaAppbmRleCAyZjIyZDQ4OTRlZGU2ZWUzZjZiOGY2OWMyOTUwZTI3MjIwOTM2ZWFhLi5l
NTk2MDg4NDRkYzJhZTQ4ZTg5NzIwODhhNGU2ZDZkNGQ5NTFlOTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oCkBAIC0xMDEsMTcgKzEwMSw0MCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVl
T3JSYW5nZSYpOworCiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAg
IFZhbHVlVW5pb24gbV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2Fw
YWJpbGl0eVZhbHVlT3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oJm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1
ZVVuaW9uKSk7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9m
KFZhbHVlVW5pb24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkK
K3sKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRf
Y2FzdDx1aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVV
bmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4
ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9t
YXgpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMp
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpCisgICAgeworICAgIH0KKwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAg
OiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KHN1cHBvcnRlZENvbnN0cmFpbnRzKSk7CiAgICAgfQogCiAgICAgflJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMoKSB7IH0KQEAgLTE2NCwxMiArMTg3LDEzIEBAIHB1YmxpYzoKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGdyb3VwSWQoKSB7IHJldHVybiBtX2dyb3VwSWQ7IH0KICAgICB2
b2lkIHNldEdyb3VwSWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgIHsgbV9ncm91cElkID0gaWQ7
IH0KICAgICAKLXByaXZhdGU6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENv
bnN0cmFpbnRzKQotICAgICAgICA6IG1fc3VwcG9ydGVkQ29uc3RyYWludHMoc3VwcG9ydGVkQ29u
c3RyYWludHMpCi0gICAgewotICAgIH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBw
b3J0ZWRDb25zdHJhaW50czsgfQorICAgIHZvaWQgc2V0U3VwcG9ydGVkQ29uc3RyYWludHMoY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykg
eyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzID0gY29uc3RyYWludHM7IH0KIAorICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKKworcHJpdmF0ZToKICAgICBDYXBhYmlsaXR5VmFsdWVP
clJhbmdlIG1fd2lkdGg7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX2hlaWdodDsKICAg
ICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1fYXNwZWN0UmF0aW87CkBAIC0xODIsOSArMjA2LDQz
IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZGV2aWNlSWQ7CiAgICAgQXRvbWljU3Ry
aW5nIG1fZ3JvdXBJZDsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyYgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV93
aWR0aAorICAgICAgICA8PCBtX2hlaWdodAorICAgICAgICA8PCBtX2FzcGVjdFJhdGlvCisgICAg
ICAgIDw8IG1fZnJhbWVSYXRlCisgICAgICAgIDw8IG1fZmFjaW5nTW9kZQorICAgICAgICA8PCBt
X3ZvbHVtZQorICAgICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9zYW1wbGVTaXpl
CisgICAgICAgIDw8IG1fZGV2aWNlSWQKKyAgICAgICAgPDwgbV9ncm91cElkCisgICAgICAgIDw8
IG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fZWNob0Nh
bmNlbGxhdGlvbik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCit7CisgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3dpZHRoKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjYXBhYmlsaXRpZXMubV9oZWlnaHQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNh
cGFiaWxpdGllcy5tX2FzcGVjdFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBh
YmlsaXRpZXMubV9mcmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxp
dGllcy5tX2ZhY2luZ01vZGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGll
cy5tX3ZvbHVtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2Ft
cGxlUmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc2FtcGxl
U2l6ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZGV2aWNlSWQp
CisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX2dyb3VwSWQpCisgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5tX3N1cHBvcnRlZENvbnN0cmFpbnRz
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZUVudW0oY2FwYWJpbGl0aWVzLm1fZWNob0NhbmNl
bGxhdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaAppbmRleCA1YTRjOWE1Mzc3YzBiMmNkNTJlZjQ1YjViMjZmNGI2MWExODNhNjU0Li5lMWZk
MTZmODZjMjc2ZDEyNjU0YjU5Y2MyNDllMDlmY2MwMjZiYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMu
aCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgpAQCAtMTUwLDYgKzE1MSwyMSBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZp
ZGVvRmFjaW5nTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlLAor
ICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5n
TW9kZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzOjpWaWRlb0ZhY2luZ01vZGU6OlVzZXIsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpFbnZpcm9ubWVudCwKKyAgICAgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6Okxl
ZnQsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9G
YWNpbmdNb2RlOjpSaWdodAorICAgID47Cit9OworCit9CisKICNlbmRpZiAvLyBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3NfaAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgK
aW5kZXggZWQxM2I0MmJiYTNlOGI2ODcwYTNlMmU0Y2FjMmFhZmE4MzE5NTFlMC4uMWE2YTk0Mjky
YTI2OGQ3MzE0MzExNGMyZDIzNzM4NzVlMTZlOGJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291
cmNlLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgIEFWQ2FwdHVyZURldmljZSAq
ZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KIAogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKTsK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2Fw
YWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVy
RGVsZWdhdGUoQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1Nh
bXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwpAQCAtMTA0LDcg
KzEwNCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3Vy
cmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNh
cHR1cmVTb3VyY2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAg
ICBSZXRhaW5QdHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxB
VkNhcHR1cmVEZXZpY2U+IG1fZGV2aWNlOwogICAgIEludGVycnVwdGlvblJlYXNvbiBtX2ludGVy
cnVwdGlvbiB7IEludGVycnVwdGlvblJlYXNvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJl
U291cmNlLm1tCmluZGV4IDVmZWY0NGZjNzE3ODI4MmUwOTliOTQzYjc0YjMxNjg5ODU4MjBkY2Eu
LjZmY2E5OWQ0YWFhZjAwZmUwNmI0MzA3NGZhMWUzNDBjZGJiNGRlMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJj
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRp
YUNhcHR1cmVTb3VyY2UubW0KQEAgLTIyOSwxNyArMjI5LDE3IEBAIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN1cHBvcnRlZENv
bnN0cmFpCiAKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoKQogewotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllczo6Y3JlYXRlKHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOworICAgIG1fY2FwYWJpbGl0aWVz
ID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPihzdXBw
b3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQo
KSk7CiAKICAgICBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7
CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMqIEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewog
ICAgIGlmICghbV9jYXBhYmlsaXRpZXMpCiAgICAgICAgIGNvbnN0X2Nhc3Q8QVZNZWRpYUNhcHR1
cmVTb3VyY2UmPigqdGhpcykuaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygpOwotICAgIHJldHVybiBt
X2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIHZv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2Ez
ZDRmZmQ4ZC4uNzgwMWI2NmE4OGFhZmE5NGI2ZjkwZDAwZWZiZGNjZTE3NmI2NjI0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwog
fQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMqIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7
CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
CisgICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIAogICAgIG1fc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKICAgICBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzLnNldFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVlKTsKICAgICBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzVm9sdW1lKHRydWUpOwogCiAgICAgLy8gRklYTUU6
IGZpbmlzaCB0aGlzLgotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllczo6Y3JlYXRlKG1fc3VwcG9ydGVkQ29uc3RyYWludHMpOworICAgIG1fY2FwYWJp
bGl0aWVzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PihtX3N1cHBvcnRlZENvbnN0cmFpbnRzKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RGV2aWNl
SWQoaWQoKSk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsK
ICAgICBtX2NhcGFiaWxpdGllcy0+c2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4w
LCAxLjApKTsKIAotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBh
YmlsaXRpZXMuZ2V0KCk7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKaW5kZXggNjY3NjhiZTdiNjNhNjRmZWIxZGFiNWQ1ODJkZTUzZTBhYmEz
OTNjYy4uNmZiMzE5MTk3ZDkzNjQ4MjBkZTE5NjdhODg0Yjg1ZjE1ZWZjNGRjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAg
T1NTdGF0dXMgc3VzcGVuZCgpOwogICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCi0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZp
bmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygp
IGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBjb25zdCBmaW5hbDsKIAogICAgIE9TU3RhdHVzIHNldHVwQXVkaW9Vbml0cygpOwpA
QCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgTG9jayBtX3BlbmRpbmdTb3VyY2VRdWV1
ZUxvY2s7CiAgICAgTG9jayBtX2ludGVybmFsU3RhdGVMb2NrOwogCi0gICAgbXV0YWJsZSBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAg
bXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
bV9jYXBhYmlsaXRpZXM7CiAgICAgbXV0YWJsZSBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlLmNwcAppbmRleCBlY2ZkNzhlNDNhNTMyZjJkYzZhMzY3NGY5Mzcx
MjcxMGMzZDg1NGYwLi41MjQ1Yzc5ZWRjNmI5NDMyODlmMTFiODI3NzNmOGNkZWY3NTdmMzI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMTQwLDkg
KzE0MCw5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXRTb3VyY2VUcmFj
ayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+
QWRkU2luayh0aGlzKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1Jl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cisg
ICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IDdkZGJm
MjIyMzAwZDZiOWZlMjNjOTY5MThmNGVhNzI3NWQ2YzEyMmUuLmQ4OTcxOWIwMzI4NDVhNGNjNWIw
YmE2MWNkNGRmMWYzZTM1MGQ5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7CiAK
LSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2Fw
YWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtNzMsNyAr
NzMsNyBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3Vy
cmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0
YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0lu
dGVyZmFjZT4gbV9hdWRpb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlLmNwcAppbmRleCBkYjlmZDA5ZGMxMDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFm
Li5jNjBjZGIwNWRlMDYzNzcyNzBhMzNjYTAwZGViZWFiZDExZDZkODQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZv
aWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSwgdW5zCiAgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlLCByb3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpj
YXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllczsKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9
CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKaW5kZXggM2JlMGQ1NGYzM2IwODBhZjI1ZTZmZDliMDVlMjQ1YjVhZTI1ODdm
MS4uYjQ3YmI4NWVmYjE3MDQ4MjA0MDI4M2M5ZGExOGI3NjZiMTRlZTE3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSgpICBmaW5hbDsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAK
ICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFp
bnRzLmdldCgpOyB9CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEltYWdl
PiBtX2N1cnJlbnRJbWFnZTsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJy
ZW50U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
IG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRh
IHsgZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlPiBtX3ZpZGVvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZU93ci5oCmluZGV4IGE4Zjc4ZTIyMjM1ZTAwY2Y0NDFjOTBkYjM1ZWNkZDQ3ZWZiYzlmMDIu
LjM1MzI4MDU3NThmNDM0ZmRjYjNmODlkYTUyZGJkNjdlNzQ2NGMzYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZU93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCkBAIC03Miw3ICs3Miw3IEBAIFJlYWx0
aW1lTWVkaWFTb3VyY2VPd3IoY29uc3QgU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBTCiAgICAgICAgIHNldE11dGVkKGZhbHNlKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAmbV9jYXBhYmlsaXRpZXM7IH0KICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPd3JNZWRpYVNvdXJjZSog
bWVkaWFTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkBAIC04Niw3ICs4
Niw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBPd3JNZWRpYVNv
dXJjZSogbV9tZWRpYVNvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNzc5MGNlOWUy
Yjk1ZDVhZWUzNmMxNzU4NTFhM2ZmOTgyOTFlMWNjOC4uNGRmZTFjNTBmZWE4NTZlMzBkOThlODBj
MDM1NGE1MWY1MTZiODg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTgzLDE2ICs4MywxNiBAQCBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3Ry
aW5nJiBpZCwgUmVhbHRpbWVNZWRpYQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKCkKIHsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZShzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsK
KyAgICBtX2NhcGFiaWxpdGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4oc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAgICAgbV9jYXBhYmlsaXRp
ZXMtPnNldERldmljZUlkKGlkKCkpOwogICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2Fw
YWJpbGl0aWVzLmdldCgpKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNh
cGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKICAgICAgICAg
Y29uc3RfY2FzdDxNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKCk7Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiBtX2Nh
cGFiaWxpdGllcy5nZXQoKTsKIH0KIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5p
dGlhbGl6ZVNldHRpbmdzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBjZGMzMzFkOTgyMGFlMGJlMTUxOTg4
NTlmMTY5ZDZkZjQ0OWY0N2EyLi41NWY0ZDg3OWU0ZDgwM2Y0ZDlhNDQ2NTI1NjhkMmMyZmQ2NTI0
ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0
cmFpbnRzLmdldCgpOyB9CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2Nh
cGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsK
ICAgICB1bnNpZ25lZCBtX2RldmljZUluZGV4IHsgMCB9OwogICAgIGJvb2wgbV9pc1Byb2R1Y2lu
Z0RhdGEgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGM2Zjdh
ZTlhYzQ2NmNlZGU0YzkyYjNiYjg3ZDk1Y2I0ODZmYTI5YjEuLjYzMjg3NzRhOTZkZjZkYWQxZTcz
NjYzMmYwN2E1Y2NiZDYzZDliOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAg
LTE0OCw3ICsxNDgsMTkgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9w
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5k
KCkpCiAgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0YSgpOwog
fQotCisgICAgCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGll
cyh1aW50NjRfdCBpZCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiYgY2FwYWJpbGl0aWVzKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGll
cy5maW5kKGlkKTsKKyAgICBpZiAoaXRlciA9PSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBpZiAoYXV0byogc291cmNlQ2FwYWJpbGl0aWVzID0gaXRlci0+dmFs
dWUtPnNvdXJjZSgpLmNhcGFiaWxpdGllcygpKQorICAgICAgICBjYXBhYmlsaXRpZXMgPSAqc291
cmNlQ2FwYWJpbGl0aWVzOworICAgIGVsc2UKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gc3RkOjpu
dWxsb3B0OworfQorICAgIAogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmlu
ZGV4IDgxMTMyMWRiYWNhMDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIuLjkyMDIxN2ZkOTMz
YWJkZDEyNWFhODVjNTM3ZjMzMjc5NGFmMDA3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtNTIsNiArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBi
b29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKICAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1
aW50NjRfdCk7CisgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4mKTsKIAogICAgIGNsYXNz
IFNvdXJjZVByb3h5OwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzRiOGNiYjdiOGE2OWI3M2Iz
OTdhOWU5ZDJiY2MwZTcwYjEzMTE1Zi4uYTA1ODgzNGI0Nzk3MGViM2I2NTM2NzAyM2IxNzcxZGM1
NmVlNjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTI1LDQgKzI1LDUgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSB7CiAgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnRzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKKyAgICBDYXBhYmlsaXRp
ZXModWludDY0X3QgaWQpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
aW5kZXggZDRlZTFjNGVkNzY5OGE4M2VmY2NlZjU3ZDljZWNlMzc1NmFmYjQ5Yi4uZmRiZjJmYWNi
NGJkYzcxMzRkOGU4MDdiYzhjZmM2ODhmZWNiNDVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
QEAgLTY2LDggKzY2LDE3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlJj4obV9yaW5nQnVmZmVyLnN0b3JhZ2UoKSk7IH0KLSAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7IH0KLSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKSB7IG1fY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyogY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeworICAgICAgICBpZiAoIW1fY2FwYWJpbGl0
aWVzSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gbV9tYW5hZ2Vy
LmNhcGFiaWxpdGllcyhtX2lkKTsKKyAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzSW5pdGlhbGl6
ZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiAhbV9jYXBhYmlsaXRpZXMgPyBu
dWxscHRyIDogJm1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7CisgICAgfQorICAgIHZvaWQgc2V0Q2Fw
YWJpbGl0aWVzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4mIGNhcGFiaWxpdGllcykKKyAgICB7CisgICAgICAgIG1fY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzOworICAgIH0KIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9
CiAgICAgdm9pZCBzZXRTZXR0aW5ncyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IHNldHRpbmdzKQpAQCAtMTMxLDcgKzE0MCw4IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBt
X2lkOwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIG11
dGFibGUgYm9vbCBtX2NhcGFiaWxpdGllc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBh
YmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiAg
ICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CiAgICAgQ0FSaW5nQnVm
ZmVyIG1fcmluZ0J1ZmZlcjsKQEAgLTIzNCw2ICsyNDQsMTMgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgbV9wcm9jZXNz
LnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNp
bmdEYXRhKGlkKSwgMCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcGFiaWxpdGll
cyh1aW50NjRfdCBpZCkKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllczsKKyAgICBtX3Byb2Nlc3Muc2VuZFN5
bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGllcyhp
ZCksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXM6
OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOworICAgIHJldHVybiBjYXBhYmlsaXRpZXM7Cit9CisK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNmEzMjY2NjJhNjM5NzY4NzI4OWI1
NTU1NDFjYTNkZmJkYTYwN2ZjYy4uYmUxZTU1ODk3YWNiYmVkNDg5MWVmYTVhNjZjNjI4NzlhYjA1
YTVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKHVpbnQ2NF90KTsKIAogICAgIGNs
YXNzIFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307012</attachid>
            <date>2017-04-13 12:30:49 -0700</date>
            <delta_ts>2017-04-13 12:30:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170814-20170413123049.patch</filename>
            <type>text/plain</type>
            <size>34166</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uODNhMWJhNDE0OTUxOGEyZjA5Y2UyOGQ5YmQ2N2Zm
MTk3NTlkMTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRo
ZXJlJ3Mgbm8gcmVhbCByZWFzb24gZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMg
dG8gYmUgUmVmQ291bnRlZCBub3IgdG8ga2VlcCB0aGVtIGZyb20KKyAgICAgICAgYmVpbmcgY3Jl
YXRlZCBvbiB0aGUgc3RhY2suIFNvIGluIGFkZGl0aW9uIHRvIG1ha2luZyB0aGF0IGNsYXNzIGNv
ZGVyLWNvbXBsaWFudCwgY2hhbmdlIGFsbCB0aGUKKyAgICAgICAgY2xhc3NlcyB0aGF0IHZlbmQg
Y2FwYWJpbGl0aWVzIHRvIHVzZSBhIHVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mIGEgUmVmUHRyPD4u
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcGFiaWxpdHlWYWx1ZU9yUmFuZ2U6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnN1cHBvcnRlZENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnNldFN1cHBv
cnRlZENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW06CisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaDoKKwogMjAxNy0wNC0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIFN1cHBvcnQgcGFp
bnRpbmcgTVNFIHZpZGVvLWVsZW1lbnQgdG8gY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTU4OGQxZDdm
MTI3Zjk0ZGI3ZjE0MjIyYjQ3ZDA5ZGE0OTNmODk2Yy4uNmIwOTg2MjgwM2NhYmFiYmQ4N2E3OWZm
OTc2Y2RjMTY1ZjZmYTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTEz
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJj
ZV0gUHVzaCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJv
Y2VzcyBjYXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIE1ha2UgYSBuZXcgc3luY2hyb25vdXMgZ2V0dGVyIGZvciBjYXBhYmlsaXRpZXMoKSwgbW9k
ZXJhdGVkIGJ5IG9ubHkgcmVxdWVzdGluZyB0aGUgY2FwYWJpbGl0aWVzKCkgY3Jvc3MtcHJvY2Vz
cworICAgICAgICB0aGUgZmlyc3QgdGltZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN1cHBvcnRlZENvbnN0cmFpbnRz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTctMDQtMTIgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW5hbWUg
LVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmgKaW5kZXggMTY3MDAyYmUzMTVhNTNhYTkwMzUxNjRjN2Y1MjBlN2Y1YTU1NDExNy4u
NDM5NGNjNzZjNWY2ZjQyY2NhYzRhMjk0MWZkNzFlZTE0NmExMTE5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2suaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCkgIGZpbmFsOwogICAgICAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9Ci0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNh
cGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICAgICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6
ZSYpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKaW5kZXggZDQ3
MjE5MDU2OWRkNTgxZmIzOGM5Zjg0NzU2NTlhZDRlZGUxNTUxNC4uZjI5MWYxYTQ3ZDk3NTZiNmRj
ZTgyZGM3NWFiMzY1ZWFlMGQyNjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKQog
ewogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI0MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggOWVj
N2MyODc4YTM3MTRhMzEzNjM1ZTk4MDExYjE4ZThmMmFkMDJiOC4uNTM2ODM1NjRhNmFkMjVmZDEz
NTZhZWFhMjUzODkxMzhmMTkzMmQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogCiAgICAgfk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAppbmRleCBlNmZkYzIwMjQ3MjNm
NzU4YzU4MDYxZDJiZDUxYTE1ZDBhOGIzY2JmLi5mOWUyZDAxMzUxMzVjMjkwZmI0NjVlYjI0NjJm
ZmRkNmI5NmYxMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSgpIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShlbXB0eVN0cmluZygpLCBUeXBlOjpOb25lLCBlbXB0eVN0cmluZygpKSB7IH0KIAotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9zb3VyY2VTZXR0aW5nczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cAppbmRleCBkNGMyZGIxMjM2YzlkY2VkM2FhMDZlZTMzNWY3ZGVkNzg0YzA3Y2FjLi45YmNmNmE2
NmUzY2NjZWI2MTUxMDlmZTNlNDQ1ODM0NTY4NmIwY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjYXBhYmlsaXRpZXMoKSBj
b25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc291cmNlLT5jYXBh
YmlsaXRpZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IDY5OWJjNWM5YTlj
MzI5MGNmOTJiMDUyZWRlYTk5MjlkY2M1MGYxNmYuLjQwM2ZlMjdmMzI1OWYzNTI5ZThjYTI0YzU1
YjRlMTZhOTNiMmUzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtODcsNyArODcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCiAgICAg
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0OwotICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBj
b25zdDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMo
KSBjb25zdDsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFp
bnRzJiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3VjY2Vzc0hhbmRsZXIsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkZhaWx1cmVIYW5kbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDA3YjAyMWY4
NmQyMzFmZTIxNGI4ZDgxYmZmNDdhZTFjMjJmYmVkN2UuLmQ1OTRlZTA4ZTY1MGQ5NTU0NDJlYjli
Njk0MGFiMDNjNjA3ZGVmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwNyw3ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUoKSBjb25z
dCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGNvbnN0ID0gMDsKIAogICAgIHVzaW5nIFN1Y2Nlc3NIYW5kbGVyID0gc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oCmluZGV4IDJmMjJkNDg5NGVkZTZlZTNmNmI4ZjY5YzI5NTBlMjcyMjA5MzZlYWEuLmU1OTYw
ODg0NGRjMmFlNDhlODk3MjA4OGE0ZTZkNmQ0ZDk1MWU5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKQEAgLTEwMSwxNyArMTAxLDQwIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fbWluT3JWYWx1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJik7CisKIHByaXZhdGU6CiAgICAgVmFsdWVVbmlvbiBtX21pbk9yVmFsdWU7CiAgICAgVmFs
dWVVbmlvbiBtX21heDsKICAgICBUeXBlIG1fdHlwZTsKIH07CiAKLWNsYXNzIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiB7Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDYXBhYmls
aXR5VmFsdWVPclJhbmdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPigmbV9taW5PclZhbHVlKSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVlVW5p
b24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPigmbV9tYXgpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFs
dWVVbmlvbikpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgdmFsdWVPclJhbmdlKQorewor
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PHVpbnQ4X3QqPigmdmFsdWVPclJhbmdlLm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9u
KSwgYWxpZ25vZihWYWx1ZVVuaW9uKSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGVGaXhlZExl
bmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21heCks
IHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9uKSkKKyAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGVFbnVtKHZhbHVlT3JSYW5nZS5tX3R5cGUpOworfQorCitjbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjcmVhdGUoY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKCkKKyAgICB7CisgICAgfQorCisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKQorICAgICAgICA6IG1f
c3VwcG9ydGVkQ29uc3RyYWludHMoc3VwcG9ydGVkQ29uc3RyYWludHMpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoc3Vw
cG9ydGVkQ29uc3RyYWludHMpKTsKICAgICB9CiAKICAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcygpIHsgfQpAQCAtMTY0LDEyICsxODcsMTMgQEAgcHVibGljOgogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgZ3JvdXBJZCgpIHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQogICAgIHZvaWQg
c2V0R3JvdXBJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSAgeyBtX2dyb3VwSWQgPSBpZDsgfQog
ICAgIAotcHJpdmF0ZToKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3Ry
YWludHMpCi0gICAgICAgIDogbV9zdXBwb3J0ZWRDb25zdHJhaW50cyhzdXBwb3J0ZWRDb25zdHJh
aW50cykKLSAgICB7Ci0gICAgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKSB7IHJldHVybiBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzOyB9CisgICAgdm9pZCBzZXRTdXBwb3J0ZWRDb25zdHJhaW50cyhjb25zdCBS
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKSB7IG1f
c3VwcG9ydGVkQ29uc3RyYWludHMgPSBjb25zdHJhaW50czsgfQogCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYpOworCitwcml2YXRlOgogICAgIENhcGFiaWxpdHlWYWx1ZU9yUmFu
Z2UgbV93aWR0aDsKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1faGVpZ2h0OwogICAgIENh
cGFiaWxpdHlWYWx1ZU9yUmFuZ2UgbV9hc3BlY3RSYXRpbzsKQEAgLTE4Miw5ICsyMDYsNDMgQEAg
cHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBBdG9taWNTdHJpbmcg
bV9ncm91cElkOwogCi0gICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzJiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3dpZHRo
CisgICAgICAgIDw8IG1faGVpZ2h0CisgICAgICAgIDw8IG1fYXNwZWN0UmF0aW8KKyAgICAgICAg
PDwgbV9mcmFtZVJhdGUKKyAgICAgICAgPDwgbV9mYWNpbmdNb2RlCisgICAgICAgIDw8IG1fdm9s
dW1lCisgICAgICAgIDw8IG1fc2FtcGxlUmF0ZQorICAgICAgICA8PCBtX3NhbXBsZVNpemUKKyAg
ICAgICAgPDwgbV9kZXZpY2VJZAorICAgICAgICA8PCBtX2dyb3VwSWQKKyAgICAgICAgPDwgbV9z
dXBwb3J0ZWRDb25zdHJhaW50czsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9lY2hvQ2FuY2Vs
bGF0aW9uKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKK3sKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fd2lkdGgpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KGNhcGFiaWxpdGllcy5tX2hlaWdodCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJp
bGl0aWVzLm1fYXNwZWN0UmF0aW8pCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxp
dGllcy5tX2ZyYW1lUmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVz
Lm1fZmFjaW5nTW9kZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1f
dm9sdW1lKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVS
YXRlKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVTaXpl
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9kZXZpY2VJZCkKKyAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZ3JvdXBJZCkKKyAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc3VwcG9ydGVkQ29uc3RyYWludHMpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlRW51bShjYXBhYmlsaXRpZXMubV9lY2hvQ2FuY2VsbGF0
aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5o
CmluZGV4IDVhNGM5YTUzNzdjMGIyY2Q1MmVmNDViNWIyNmY0YjYxYTE4M2E2NTQuLmUxZmQxNmY4
NmMyNzZkMTI2NTRiNTljYzI0OWUwOWZjYzAyNmJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgor
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CkBAIC0xNTAsNiArMTUxLDIxIEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVhbHRpbWVNZWRpYVNvdXJjZVNlCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9G
YWNpbmdNb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGUsCisgICAg
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2Rl
OjpVbmtub3duLAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6
OlZpZGVvRmFjaW5nTW9kZTo6VXNlciwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OkVudmlyb25tZW50LAorICAgICAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6TGVmdCwK
KyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2lu
Z01vZGU6OlJpZ2h0CisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5nc19oCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAppbmRl
eCBlZDEzYjQyYmJhM2U4YjY4NzBhM2UyZTRjYWMyYWFmYTgzMTk1MWUwLi4xYTZhOTQyOTJhMjY4
ZDczMTQzMTE0YzJkMjM3Mzg3NWUxNmU4YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2Uu
aApAQCAtODQsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQVZDYXB0dXJlRGV2aWNlICpkZXZp
Y2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZS5nZXQoKTsgfQogCiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpOwotICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBj
b25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmls
aXRpZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxl
Z2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNldEF1ZGlvU2FtcGxl
QnVmZmVyRGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CkBAIC0xMDQsNyArMTA0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50
U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVk1lZGlhQ2FwdHVy
ZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJl
dGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPEFWQ2Fw
dHVyZURldmljZT4gbV9kZXZpY2U7CiAgICAgSW50ZXJydXB0aW9uUmVhc29uIG1faW50ZXJydXB0
aW9uIHsgSW50ZXJydXB0aW9uUmVhc29uOjpOb25lIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KaW5kZXggNWZlZjQ0ZmM3MTc4MjgyZTA5OWI5NDNiNzRiMzE2ODk4NTgyMGRjYS4uNmZj
YTk5ZDRhYWFmMDBmZTA2YjQzMDc0ZmExZTM0MGNkYmI0ZGUyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5tbQpAQCAtMjI5LDE3ICsyMjksMTcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3VwcG9ydGVkQ29uc3Ry
YWkKIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGllcygp
CiB7Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpjcmVhdGUoc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBz
dGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KHN1cHBvcnRl
ZENvbnN0cmFpbnRzKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChpZCgpKTsK
IAogICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKIH0K
IAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWTWVkaWFDYXB0dXJl
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyogQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2NhcGFiaWxpdGllcykKICAgICAgICAgY29uc3RfY2FzdDxBVk1lZGlhQ2FwdHVyZVNv
dXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7Ci0gICAgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzOworICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIH0KIAogdm9pZCBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcAppbmRleCAyOWM3MDExNDM4YzUwNDRhY2JhZjJlNmVhYmU3OTkzYTNkNGZm
ZDhkLi43ODAxYjY2YTg4YWFmYTk0YjZmOTBkMDBlZmJkY2NlMTc2YjY2MjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00ODgsMjIgKzQ4OCwyMiBAQCBPU1N0YXR1
cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpyZXN1bWUoKQogICAgIHJldHVybiBlcnI7CiB9CiAK
LVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKICAg
ICBpZiAobV9jYXBhYmlsaXRpZXMpCi0gICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAg
ICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLmdldCgpOwogCiAgICAgbV9zdXBwb3J0ZWRDb25z
dHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlkKHRydWUpOwogICAgIG1fc3VwcG9ydGVkQ29uc3Ry
YWludHMuc2V0U3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKHRydWUpOwogICAgIG1fc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNWb2x1bWUodHJ1ZSk7CiAKICAgICAvLyBGSVhNRTogZmlu
aXNoIHRoaXMuCi0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzOjpjcmVhdGUobV9zdXBwb3J0ZWRDb25zdHJhaW50cyk7CisgICAgbV9jYXBhYmlsaXRp
ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KG1f
c3VwcG9ydGVkQ29uc3RyYWludHMpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChp
ZCgpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0RWNob0NhbmNlbGxhdGlvbihSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0aW9uOjpSZWFkV3JpdGUpOwogICAg
IG1fY2FwYWJpbGl0aWVzLT5zZXRWb2x1bWUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgwLjAsIDEu
MCkpOwogCi0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiBtX2NhcGFiaWxp
dGllcy5nZXQoKTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCA2Njc2OGJlN2I2M2E2NGZlYjFkYWI1ZDU4MmRlNTNlMGFiYTM5M2Nj
Li42ZmIzMTkxOTdkOTM2NDgyMGRlMTk2N2E4ODRiODVmMTVlZmM0ZGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBPU1N0
YXR1cyBzdXNwZW5kKCk7CiAgICAgT1NTdGF0dXMgcmVzdW1lKCk7CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsOwogCiAgICAgT1NTdGF0dXMgc2V0dXBBdWRpb1VuaXRzKCk7CkBAIC0x
MjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBMb2NrIG1fcGVuZGluZ1NvdXJjZVF1ZXVlTG9j
azsKICAgICBMb2NrIG1faW50ZXJuYWxTdGF0ZUxvY2s7CiAKLSAgICBtdXRhYmxlIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2Nh
cGFiaWxpdGllczsKICAgICBtdXRhYmxlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGVjZmQ3OGU0M2E1MzJmMmRjNmEzNjc0ZjkzNzEyNzEw
YzNkODU0ZjAuLjUyNDVjNzllZGM2Yjk0MzI4OWYxMWI4Mjc3M2Y4Y2RlZjc1N2YzMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC0xNDAsOSArMTQw
LDkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZVRyYWNrKHJ0
Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGkKICAgICAgICAgbV9hdWRpb1RyYWNrLT5BZGRT
aW5rKHRoaXMpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpj
YXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKKyAgICBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggN2RkYmYyMjIz
MDBkNmI5ZmUyM2M5NjkxOGY0ZWE3Mjc1ZDZjMTIyZS4uZDg5NzE5YjAzMjg0NWE0Y2M1YjBiYTYx
Y2Q0ZGYxZjNlMzUwZDkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2UuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpICBmaW5hbDsKIAotICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBj
b25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmls
aXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgpOyB9CkBAIC03Myw3ICs3Myw3
IEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50
U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsg
ZmFsc2UgfTsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJm
YWNlPiBtX2F1ZGlvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2UuY3BwCmluZGV4IGRiOWZkMDlkYzEwM2ZjYzkyNzFmY2YzZGFhNWEzMzZiMWVlOTVkMWYuLmM2
MGNkYjA1ZGUwNjM3NzI3MGEzM2NhMDBkZWJlYWJkMTFkNmQ4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCkBAIC0yMDcsOSArMjA3LDkgQEAgdm9pZCBS
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLCB1bnMKICAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZUFW
Rk9iakM6OmNyZWF0ZShzYW1wbGUsIHJvdGF0aW9uKSk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFi
aWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIH0KIAog
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaAppbmRleCAzYmUwZDU0ZjMzYjA4MGFmMjVlNmZkOWIwNWUyNDViNWFlMjU4N2YxLi5i
NDdiYjg1ZWZiMTcwNDgyMDQwMjgzYzlkYTE4Yjc2NmIxNGVlMTdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2b2lkIHN0b3BQcm9kdWNp
bmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAogICAg
IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMu
Z2V0KCk7IH0KQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SW1hZ2U+IG1f
Y3VycmVudEltYWdlOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRT
ZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9z
dXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBm
YWxzZSB9OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZh
Y2U+IG1fdmlkZW9UcmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNl
T3dyLmgKaW5kZXggYThmNzhlMjIyMzVlMDBjZjQ0MWM5MGRiMzVlY2RkNDdlZmJjOWYwMi4uNmZl
ZTI3MTQ4OWY4ZWMyMDBlOTM5M2QwNmM4MjkzMGM0ZWU2ZWFlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291
cmNlT3dyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Blbndl
YnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgKQEAgLTcyLDcgKzcyLDcgQEAgUmVhbHRpbWVN
ZWRpYVNvdXJjZU93cihjb25zdCBTdHJpbmcmIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IHR5cGUsIGNvbnN0IFMKICAgICAgICAgc2V0TXV0ZWQoZmFsc2UpOwogICAgIH0KIAotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGNvbnN0X2Nhc3Q8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyo+KCZtX2NhcGFiaWxp
dGllcyk7IH0KICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPd3JNZWRpYVNvdXJjZSogbWVkaWFTb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkBAIC04Niw3ICs4Niw3IEBAIHByb3RlY3Rl
ZDoKIAogcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWlu
dHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBPd3JNZWRpYVNvdXJjZSogbV9tZWRpYVNv
dXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNzc5MGNlOWUyYjk1ZDVhZWUzNmMxNzU4
NTFhM2ZmOTgyOTFlMWNjOC4uNGRmZTFjNTBmZWE4NTZlMzBkOThlODBjMDM1NGE1MWY1MTZiODg1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTgzLDE2ICs4MywxNiBAQCBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgUmVhbHRp
bWVNZWRpYQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjppbml0aWFsaXplQ2FwYWJp
bGl0aWVzKCkKIHsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM6OmNyZWF0ZShzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKKyAgICBtX2NhcGFiaWxp
dGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4o
c3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldERldmljZUlk
KGlkKCkpOwogICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgp
KTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1vY2tSZWFs
dGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKICAgICAgICAgY29uc3RfY2FzdDxNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7Ci0g
ICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQo
KTsKIH0KIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5pdGlhbGl6ZVNldHRpbmdz
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2UuaAppbmRleCBjZGMzMzFkOTgyMGFlMGJlMTUxOTg4NTlmMTY5ZDZkZjQ0OWY0
N2EyLi41NWY0ZDg3OWU0ZDgwM2Y0ZDlhNDQ2NTI1NjhkMmMyZmQ2NTI0ZGJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCkBAIC02OCw3ICs2OCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5n
RGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsK
IAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
KiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBNZWRpYUNv
bnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgpOyB9
CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAg
ICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKICAgICB1bnNpZ25lZCBt
X2RldmljZUluZGV4IHsgMCB9OwogICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGM2ZjdhZTlhYzQ2NmNlZGU0Yzky
YjNiYjg3ZDk1Y2I0ODZmYTI5YjEuLjYzMjg3NzRhOTZkZjZkYWQxZTczNjYzMmYwN2E1Y2NiZDYz
ZDliOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE0OCw3ICsxNDgsMTkg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1
aW50NjRfdCBpZCkKICAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCiAgICAgICAgIGl0
ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0YSgpOwogfQotCisgICAgCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyh1aW50NjRfdCBpZCwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiYg
Y2FwYWJpbGl0aWVzKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAg
ICBpZiAoaXRlciA9PSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBpZiAoYXV0byogc291cmNlQ2FwYWJpbGl0aWVzID0gaXRlci0+dmFsdWUtPnNvdXJjZSgpLmNh
cGFiaWxpdGllcygpKQorICAgICAgICBjYXBhYmlsaXRpZXMgPSAqc291cmNlQ2FwYWJpbGl0aWVz
OworICAgIGVsc2UKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gc3RkOjpudWxsb3B0OworfQorICAg
IAogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDgxMTMyMWRiYWNh
MDQ3NWVkNDc5ZjJiYmZiYjM1ZTU2NjRkOGY2ZDIuLjkyMDIxN2ZkOTMzYWJkZDEyNWFhODVjNTM3
ZjMzMjc5NGFmMDA3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNTIsNiArNTIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQs
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0
YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CisgICAg
dm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4mKTsKIAogICAgIGNsYXNzIFNvdXJjZVByb3h5Owog
ICAgIGZyaWVuZCBjbGFzcyBTb3VyY2VQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzRiOGNiYjdiOGE2OWI3M2IzOTdhOWU5ZDJiY2MwZTcw
YjEzMTE1Zi4uYTA1ODgzNGI0Nzk3MGViM2I2NTM2NzAyM2IxNzcxZGM1NmVlNjBmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDQgKzI1LDUg
QEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7CiAgICAgQ3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENv
bnN0cmFpbnRzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9w
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKKyAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IGNhcGFiaWxpdGllcykKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZDRlZTFjNGVk
NzY5OGE4M2VmY2NlZjU3ZDljZWNlMzc1NmFmYjQ5Yi4uZmRiZjJmYWNiNGJkYzcxMzRkOGU4MDdi
YzhjZmM2ODhmZWNiNDVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTY2LDggKzY2LDE3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFn
ZSgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5n
QnVmZmVyLnN0b3JhZ2UoKSk7IH0KLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRp
ZXM7IH0KLSAgICB2b2lkIHNldENhcGFiaWxpdGllcyhSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKSB7IG1fY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0
aWVzOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWwgeworICAgICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzSW5pdGlhbGl6ZWQp
IHsKKyAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gbV9tYW5hZ2VyLmNhcGFiaWxpdGllcyht
X2lkKTsKKyAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzSW5pdGlhbGl6ZWQgPSB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiAhbV9jYXBhYmlsaXRpZXMgPyBudWxscHRyIDogJm1fY2Fw
YWJpbGl0aWVzLnZhbHVlKCk7CisgICAgfQorICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4m
IGNhcGFiaWxpdGllcykKKyAgICB7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0
aWVzOworICAgIH0KIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBzZXRT
ZXR0aW5ncyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQpAQCAt
MTMxLDcgKzE0MCw4IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX2lkOwogICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIG11dGFibGUgYm9vbCBtX2Nh
cGFiaWxpdGllc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9u
YWw8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7CiAgICAgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CiAgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZl
cjsKQEAgLTIzNCw2ICsyNDQsMTMgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3Rv
cFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7
CiB9CiAKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkK
K3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllczsKKyAgICBtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGllcyhpZCksIE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRpZXM6OlJlcGx5KGNhcGFiaWxp
dGllcyksIDApOworICAgIHJldHVybiBjYXBhYmlsaXRpZXM7Cit9CisKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKaW5kZXggNmEzMjY2NjJhNjM5NzY4NzI4OWI1NTU1NDFjYTNkZmJkYTYw
N2ZjYy4uYmUxZTU1ODk3YWNiYmVkNDg5MWVmYTVhNjZjNjI4NzlhYjA1YTVlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0
X3QpOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gY2FwYWJpbGl0aWVzKHVpbnQ2NF90KTsKIAogICAgIGNsYXNzIFNvdXJjZTsKICAg
ICBmcmllbmQgY2xhc3MgU291cmNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307028</attachid>
            <date>2017-04-13 14:48:00 -0700</date>
            <delta_ts>2017-04-13 14:55:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170814-20170413144800.patch</filename>
            <type>text/plain</type>
            <size>34658</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uODNhMWJhNDE0OTUxOGEyZjA5Y2UyOGQ5YmQ2N2Zm
MTk3NTlkMTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRo
ZXJlJ3Mgbm8gcmVhbCByZWFzb24gZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMg
dG8gYmUgUmVmQ291bnRlZCBub3IgdG8ga2VlcCB0aGVtIGZyb20KKyAgICAgICAgYmVpbmcgY3Jl
YXRlZCBvbiB0aGUgc3RhY2suIFNvIGluIGFkZGl0aW9uIHRvIG1ha2luZyB0aGF0IGNsYXNzIGNv
ZGVyLWNvbXBsaWFudCwgY2hhbmdlIGFsbCB0aGUKKyAgICAgICAgY2xhc3NlcyB0aGF0IHZlbmQg
Y2FwYWJpbGl0aWVzIHRvIHVzZSBhIHVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mIGEgUmVmUHRyPD4u
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcGFiaWxpdHlWYWx1ZU9yUmFuZ2U6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnN1cHBvcnRlZENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnNldFN1cHBv
cnRlZENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW06CisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaDoKKwogMjAxNy0wNC0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIFN1cHBvcnQgcGFp
bnRpbmcgTVNFIHZpZGVvLWVsZW1lbnQgdG8gY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTU4OGQxZDdm
MTI3Zjk0ZGI3ZjE0MjIyYjQ3ZDA5ZGE0OTNmODk2Yy4uNmIwOTg2MjgwM2NhYmFiYmQ4N2E3OWZm
OTc2Y2RjMTY1ZjZmYTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTEz
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJj
ZV0gUHVzaCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJv
Y2VzcyBjYXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIE1ha2UgYSBuZXcgc3luY2hyb25vdXMgZ2V0dGVyIGZvciBjYXBhYmlsaXRpZXMoKSwgbW9k
ZXJhdGVkIGJ5IG9ubHkgcmVxdWVzdGluZyB0aGUgY2FwYWJpbGl0aWVzKCkgY3Jvc3MtcHJvY2Vz
cworICAgICAgICB0aGUgZmlyc3QgdGltZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN1cHBvcnRlZENvbnN0cmFpbnRz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTctMDQtMTIgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW5hbWUg
LVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmgKaW5kZXggMTY3MDAyYmUzMTVhNTNhYTkwMzUxNjRjN2Y1MjBlN2Y1YTU1NDExNy4u
NDM5NGNjNzZjNWY2ZjQyY2NhYzRhMjk0MWZkNzFlZTE0NmExMTE5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2suaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCkgIGZpbmFsOwogICAgICAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9Ci0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNh
cGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICAgICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6
ZSYpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKaW5kZXggZDQ3
MjE5MDU2OWRkNTgxZmIzOGM5Zjg0NzU2NTlhZDRlZGUxNTUxNC4uZjI5MWYxYTQ3ZDk3NTZiNmRj
ZTgyZGM3NWFiMzY1ZWFlMGQyNjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKQog
ewogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMqIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI0MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggOWVj
N2MyODc4YTM3MTRhMzEzNjM1ZTk4MDExYjE4ZThmMmFkMDJiOC4uNTM2ODM1NjRhNmFkMjVmZDEz
NTZhZWFhMjUzODkxMzhmMTkzMmQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogCiAgICAgfk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcAppbmRleCBlNmZkYzIwMjQ3MjNm
NzU4YzU4MDYxZDJiZDUxYTE1ZDBhOGIzY2JmLi5mOWUyZDAxMzUxMzVjMjkwZmI0NjVlYjI0NjJm
ZmRkNmI5NmYxMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSgpIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShlbXB0eVN0cmluZygpLCBUeXBlOjpOb25lLCBlbXB0eVN0cmluZygpKSB7IH0KIAotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9zb3VyY2VTZXR0aW5nczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cAppbmRleCBkNGMyZGIxMjM2YzlkY2VkM2FhMDZlZTMzNWY3ZGVkNzg0YzA3Y2FjLi45YmNmNmE2
NmUzY2NjZWI2MTUxMDlmZTNlNDQ1ODM0NTY4NmIwY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjYXBhYmlsaXRpZXMoKSBj
b25zdAorUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc291cmNlLT5jYXBh
YmlsaXRpZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCmluZGV4IDY5OWJjNWM5YTlj
MzI5MGNmOTJiMDUyZWRlYTk5MjlkY2M1MGYxNmYuLjQwM2ZlMjdmMzI1OWYzNTI5ZThjYTI0YzU1
YjRlMTZhOTNiMmUzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaApAQCAtODcsNyArODcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCiAgICAg
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0OwotICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBj
b25zdDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRpZXMo
KSBjb25zdDsKIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFp
bnRzJiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3VjY2Vzc0hhbmRsZXIsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkZhaWx1cmVIYW5kbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDA3YjAyMWY4
NmQyMzFmZTIxNGI4ZDgxYmZmNDdhZTFjMjJmYmVkN2UuLmQ1OTRlZTA4ZTY1MGQ5NTU0NDJlYjli
Njk0MGFiMDNjNjA3ZGVmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwNyw3ICsxMDcsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUoKSBjb25z
dCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
JiBzZXR0aW5ncygpIGNvbnN0ID0gMDsKIAogICAgIHVzaW5nIFN1Y2Nlc3NIYW5kbGVyID0gc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oCmluZGV4IDJmMjJkNDg5NGVkZTZlZTNmNmI4ZjY5YzI5NTBlMjcyMjA5MzZlYWEuLjA2M2U0
YzJmMDA2ZmE0YzQwMDRmOTJkMWY3NjhmZjVkZGYyNDFiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKQEAgLTEwMSwyMCArMTAxLDQwIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fbWluT3JWYWx1ZTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJik7CisKIHByaXZhdGU6CiAgICAgVmFsdWVVbmlvbiBtX21pbk9yVmFsdWU7CiAgICAgVmFs
dWVVbmlvbiBtX21heDsKICAgICBUeXBlIG1fdHlwZTsKIH07CiAKLWNsYXNzIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiB7Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDYXBhYmls
aXR5VmFsdWVPclJhbmdlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPigmbV9taW5PclZhbHVlKSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVlVW5p
b24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPigmbV9tYXgpLCBzaXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFs
dWVVbmlvbikpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgdmFsdWVPclJhbmdlKQorewor
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0
PHVpbnQ4X3QqPigmdmFsdWVPclJhbmdlLm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9u
KSwgYWxpZ25vZihWYWx1ZVVuaW9uKSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGVGaXhlZExl
bmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21heCks
IHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9uKSkKKyAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGVFbnVtKHZhbHVlT3JSYW5nZS5tX3R5cGUpOworfQorCitjbGFzcyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjcmVhdGUoY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKCkgPSBkZWZhdWx0OworICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAgOiBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKHN1cHBvcnRl
ZENvbnN0cmFpbnRzKSk7CiAgICAgfQogCi0gICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMoKSB7IH0KKyAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpID0gZGVm
YXVsdDsKIAogICAgIGJvb2wgc3VwcG9ydHNXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHMuc3VwcG9ydHNXaWR0aCgpOyB9CiAgICAgY29uc3QgQ2FwYWJpbGl0eVZh
bHVlT3JSYW5nZSYgd2lkdGgoKSB7IHJldHVybiBtX3dpZHRoOyB9CkBAIC0xNjQsMTIgKzE4NCwx
MyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBncm91cElkKCkgeyByZXR1cm4g
bV9ncm91cElkOyB9CiAgICAgdm9pZCBzZXRHcm91cElkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQp
ICB7IG1fZ3JvdXBJZCA9IGlkOyB9CiAgICAgCi1wcml2YXRlOgotICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cykKLSAgICAgICAgOiBtX3N1cHBvcnRlZENvbnN0
cmFpbnRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKQotICAgIHsKLSAgICB9CisgICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50
cygpIHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7IH0KKyAgICB2b2lkIHNldFN1cHBv
cnRlZENvbnN0cmFpbnRzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cyYgY29uc3RyYWludHMpIHsgbV9zdXBwb3J0ZWRDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRz
OyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJik7CiAKK3ByaXZhdGU6CiAg
ICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX3dpZHRoOwogICAgIENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UgbV9oZWlnaHQ7CiAgICAgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSBtX2FzcGVjdFJhdGlv
OwpAQCAtMTgyLDkgKzIwMyw0MyBAQCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX2Rldmlj
ZUlkOwogICAgIEF0b21pY1N0cmluZyBtX2dyb3VwSWQ7CiAKLSAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29u
c3RyYWludHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG1fd2lkdGgKKyAgICAgICAgPDwgbV9oZWlnaHQKKyAgICAgICAgPDwg
bV9hc3BlY3RSYXRpbworICAgICAgICA8PCBtX2ZyYW1lUmF0ZQorICAgICAgICA8PCBtX2ZhY2lu
Z01vZGUKKyAgICAgICAgPDwgbV92b2x1bWUKKyAgICAgICAgPDwgbV9zYW1wbGVSYXRlCisgICAg
ICAgIDw8IG1fc2FtcGxlU2l6ZQorICAgICAgICA8PCBtX2RldmljZUlkCisgICAgICAgIDw8IG1f
Z3JvdXBJZAorICAgICAgICA8PCBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworICAgIGVuY29kZXIu
ZW5jb2RlRW51bShtX2VjaG9DYW5jZWxsYXRpb24pOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgorYm9vbCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVz
KQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV93aWR0aCkKKyAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1faGVpZ2h0KQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9hc3BlY3RSYXRpbykKKyAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZnJhbWVSYXRlKQorICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9mYWNpbmdNb2RlKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjYXBhYmlsaXRpZXMubV92b2x1bWUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KGNhcGFiaWxpdGllcy5tX3NhbXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNh
cGFiaWxpdGllcy5tX3NhbXBsZVNpemUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFi
aWxpdGllcy5tX2RldmljZUlkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRp
ZXMubV9ncm91cElkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9z
dXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKGNhcGFi
aWxpdGllcy5tX2VjaG9DYW5jZWxsYXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzLmgKaW5kZXggNWE0YzlhNTM3N2MwYjJjZDUyZWY0NWI1YjI2
ZjRiNjFhMTgzYTY1NC4uZTFmZDE2Zjg2YzI3NmQxMjY1NGI1OWNjMjQ5ZTA5ZmNjMDI2YmE1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTE1MCw2ICsxNTEsMjEgQEAgYm9vbCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGlt
ZU1lZGlhU291cmNlU2UKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6
OlZpZGVvRmFjaW5nTW9kZSwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OlVua25vd24sCisgICAgICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpVc2VyLAorICAgICAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6RW52
aXJvbm1lbnQsCisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
VmlkZW9GYWNpbmdNb2RlOjpMZWZ0LAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6UmlnaHQKKyAgICA+OworfTsKKworfQorCiAj
ZW5kaWYgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzX2gKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1l
ZGlhQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGVkMTNiNDJiYmEzZThiNjg3MGEzZTJlNGNhYzJhYWZh
ODMxOTUxZTAuLjFhNmE5NDI5MmEyNjhkNzMxNDMxMTRjMmQyMzczODc1ZTE2ZThiZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oCkBAIC04NCw3ICs4NCw3IEBAIHByb3RlY3RlZDoKICAg
ICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlLmdldCgp
OyB9CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBv
cnRlZENvbnN0cmFpbnRzKCk7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBz
ZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCopOwog
ICAgIHZvaWQgc2V0QXVkaW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVBdWRpb0RhdGFP
dXRwdXQqKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZXRhaW5Q
dHI8V2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwot
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGll
czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
bV9jYXBhYmlsaXRpZXM7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZVNlc3Npb24+IG1fc2Vzc2lv
bjsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlPiBtX2RldmljZTsKICAgICBJbnRlcnJ1
cHRpb25SZWFzb24gbV9pbnRlcnJ1cHRpb24geyBJbnRlcnJ1cHRpb25SZWFzb246Ok5vbmUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1l
ZGlhQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA1ZmVmNDRmYzcxNzgyODJlMDk5Yjk0
M2I3NGIzMTY4OTg1ODIwZGNhLi42ZmNhOTlkNGFhYWYwMGZlMDZiNDMwNzRmYTFlMzQwY2RiYjRk
ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCkBAIC0yMjksMTcgKzIyOSwxNyBA
QCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIEFWTWVkaWFDYXB0dXJl
U291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKCkKIHsKLSAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZShzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsK
KyAgICBtX2NhcGFiaWxpdGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4oc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAgICAgbV9jYXBhYmlsaXRp
ZXMtPnNldERldmljZUlkKGlkKCkpOwogCiAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygqbV9j
YXBhYmlsaXRpZXMuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcz4gQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJp
bGl0aWVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKQogICAgICAgICBjb25z
dF9jYXN0PEFWTWVkaWFDYXB0dXJlU291cmNlJj4oKnRoaXMpLmluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoKTsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0
aWVzLmdldCgpOwogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDI5YzcwMTE0MzhjNTA0
NGFjYmFmMmU2ZWFiZTc5OTNhM2Q0ZmZkOGQuLjc4MDFiNjZhODhhYWZhOTRiNmY5MGQwMGVmYmRj
Y2UxNzZiNjYyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTQ4
OCwyMiArNDg4LDIyIEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnJlc3VtZSgp
CiAgICAgcmV0dXJuIGVycjsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CitSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMoKSBjb25zdAogewogICAgIGlmIChtX2NhcGFiaWxpdGllcykKLSAgICAgICAgcmV0
dXJuIG1fY2FwYWJpbGl0aWVzOworICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXMuZ2V0KCk7
CiAKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7
CiAgICAgbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24o
dHJ1ZSk7CiAgICAgbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c1ZvbHVtZSh0cnVl
KTsKIAogICAgIC8vIEZJWE1FOiBmaW5pc2ggdGhpcy4KLSAgICBtX2NhcGFiaWxpdGllcyA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZShtX3N1cHBvcnRlZENvbnN0cmFp
bnRzKTsKKyAgICBtX2NhcGFiaWxpdGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4obV9zdXBwb3J0ZWRDb25zdHJhaW50cyk7CiAgICAgbV9jYXBh
YmlsaXRpZXMtPnNldERldmljZUlkKGlkKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRFY2hv
Q2FuY2VsbGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxs
YXRpb246OlJlYWRXcml0ZSk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldFZvbHVtZShDYXBhYmls
aXR5VmFsdWVPclJhbmdlKDAuMCwgMS4wKSk7CiAKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDY2NzY4YmU3YjYzYTY0ZmVi
MWRhYjVkNTgyZGU1M2UwYWJhMzkzY2MuLjZmYjMxOTE5N2Q5MzY0ODIwZGUxOTY3YTg4NGI4NWYx
NWVmYzRkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNzgsNyArNzgs
NyBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIHN1c3BlbmQoKTsKICAgICBPU1N0YXR1cyByZXN1
bWUoKTsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBh
YmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzKiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CiAKICAgICBPU1N0YXR1cyBz
ZXR1cEF1ZGlvVW5pdHMoKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIExvY2sg
bV9wZW5kaW5nU291cmNlUXVldWVMb2NrOwogICAgIExvY2sgbV9pbnRlcm5hbFN0YXRlTG9jazsK
IAotICAgIG11dGFibGUgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1f
Y2FwYWJpbGl0aWVzOworICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIG11dGFibGUgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKaW5kZXggZWNmZDc4ZTQz
YTUzMmYyZGM2YTM2NzRmOTM3MTI3MTBjM2Q4NTRmMC4uNTI0NWM3OWVkYzZiOTQzMjg5ZjExYjgy
NzczZjhjZGVmNzU3ZjMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHAKQEAgLTE0MCw5ICsxNDAsOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZTo6c2V0U291cmNlVHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaQogICAg
ICAgICBtX2F1ZGlvVHJhY2stPkFkZFNpbmsodGhpcyk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcygpIGNvbnN0CitSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy5nZXQoKTsKIH0KIAog
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UuaAppbmRleCA3ZGRiZjIyMjMwMGQ2YjlmZTIzYzk2OTE4ZjRlYTcyNzVkNmMxMjJlLi5k
ODk3MTliMDMyODQ1YTRjYzViMGJhNjFjZDRkZjFmM2UzNTBkOTBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2b2lkIHN0b3BQcm9kdWNp
bmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBmaW5hbDsKIAogICAg
IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gKm1fY29uc3RyYWludHMu
Z2V0KCk7IH0KQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0
aWVzOwogICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwogICAgIGJv
b2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3
ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+IG1fYXVkaW9UcmFjazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggZGI5ZmQwOWRjMTAzZmNjOTI3MWZj
ZjNkYWE1YTMzNmIxZWU5NWQxZi4uYzYwY2RiMDVkZTA2Mzc3MjcwYTMzY2EwMGRlYmVhYmQxMWQ2
ZDg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKQEAg
LTIwNyw5ICsyMDcsOSBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6cHJvY2Vz
c05ld1NhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIHVucwogICAgIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZSwgcm90YXRpb24pKTsK
IH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IFJlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMqIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVz
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuIG1fY2Fw
YWJpbGl0aWVzLmdldCgpOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c2V0dGluZ3MoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCmluZGV4IDNiZTBkNTRmMzNiMDgwYWYyNWU2
ZmQ5YjA1ZTI0NWI1YWUyNTg3ZjEuLmI0N2JiODVlZmIxNzA0ODIwNDAyODNjOWRhMThiNzY2YjE0
ZWUxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFs
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5n
cygpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7
IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxJbWFnZT4gbV9jdXJyZW50SW1hZ2U7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRp
ZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9v
bCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4gbV92aWRlb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlh
U291cmNlT3dyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAppbmRleCBhOGY3OGUyMjIzNWUwMGNmNDQxYzkw
ZGIzNWVjZGQ0N2VmYmM5ZjAyLi42ZmVlMjcxNDg5ZjhlYzIwMGU5MzkzZDA2YzgyOTMwYzRlZTZl
YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaApAQCAt
NzIsNyArNzIsNyBAQCBSZWFsdGltZU1lZGlhU291cmNlT3dyKGNvbnN0IFN0cmluZyYgaWQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgUwogICAgICAgICBzZXRNdXRlZChm
YWxzZSk7CiAgICAgfQogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gY29uc3RfY2FzdDxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzKj4oJm1fY2FwYWJpbGl0aWVzKTsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE93ck1lZGlh
U291cmNlKiBtZWRpYVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KQEAg
LTg2LDcgKzg2LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIE93
ck1lZGlhU291cmNlKiBtX21lZGlhU291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA3
NzkwY2U5ZTJiOTVkNWFlZTM2YzE3NTg1MWEzZmY5ODI5MWUxY2M4Li40ZGZlMWM1MGZlYTg1NmUz
MGQ5OGU4MGMwMzU0YTUxZjUxNmI4ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtODMsMTYgKzgz
LDE2IEBAIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShj
b25zdCBTdHJpbmcmIGlkLCBSZWFsdGltZU1lZGlhCiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoKQogewotICAgIG1fY2FwYWJpbGl0aWVzID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKHN1cHBvcnRlZENvbnN0cmFp
bnRzKCkpOworICAgIG1fY2FwYWJpbGl0aWVzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPihzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBtX2Nh
cGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGll
cygqbV9jYXBhYmlsaXRpZXMuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNv
bnN0CitSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKQog
ICAgICAgICBjb25zdF9jYXN0PE1vY2tSZWFsdGltZU1lZGlhU291cmNlJj4oKnRoaXMpLmluaXRp
YWxpemVDYXBhYmlsaXRpZXMoKTsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0
dXJuIG1fY2FwYWJpbGl0aWVzLmdldCgpOwogfQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlOjppbml0aWFsaXplU2V0dGluZ3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IGNkYzMzMWQ5ODIwYWUw
YmUxNTE5ODg1OWYxNjlkNmRmNDQ5ZjQ3YTIuLjU1ZjRkODc5ZTRkODAzZjRkOWE0NDY1MjU2OGQy
YzJmZDY1MjRkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMqIGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBv
dmVycmlkZTsKIAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4g
Km1fY29uc3RyYWludHMuZ2V0KCk7IH0KQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFs
dGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50
czsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmls
aXRpZXM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBtX2NvbnN0
cmFpbnRzOwogICAgIHVuc2lnbmVkIG1fZGV2aWNlSW5kZXggeyAwIH07CiAgICAgYm9vbCBtX2lz
UHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggYzZmN2FlOWFjNDY2Y2VkZTRjOTJiM2JiODdkOTVjYjQ4NmZhMjliMS4uODU4YTM2YzA5MThi
ZjIyYTZlODBiNGY5Y2FkNjQxNjQ2OGUwMDZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgYXV0
byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoY29uc3RyYWludHNE
YXRhKTsKICAgICBhdXRvIHNvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMoZGV2aWNlLCBjb25zdHJhaW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFp
bnRzKTsKICAgICBzdWNjZWVkZWQgPSAhIXNvdXJjZTsKLSAgICAKKwogICAgIGlmIChzb3VyY2Up
CiAgICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+
KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKIH0KQEAgLTE0OSw2ICsxNDks
MTcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0
YSh1aW50NjRfdCBpZCkKICAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0b3BQcm9kdWNp
bmdEYXRhKCk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJp
bGl0aWVzKHVpbnQ2NF90IGlkLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+JiBjYXBhYmlsaXRpZXMpCit7CisgICAgY2FwYWJpbGl0aWVzID0g
c3RkOjpudWxsb3B0OworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBp
ZiAoaXRlciA9PSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChh
dXRvKiBzb3VyY2VDYXBhYmlsaXRpZXMgPSBpdGVyLT52YWx1ZS0+c291cmNlKCkuY2FwYWJpbGl0
aWVzKCkpCisgICAgICAgIGNhcGFiaWxpdGllcyA9ICpzb3VyY2VDYXBhYmlsaXRpZXM7Cit9Cisg
ICAgCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggODExMzIxZGJh
Y2EwNDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMi4uOTIwMjE3ZmQ5MzNhYmRkMTI1YWE4NWM1
MzdmMzMyNzk0YWYwMDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAg
ICB2b2lkIGNhcGFiaWxpdGllcyh1aW50NjRfdCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiYpOwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7
CiAgICAgZnJpZW5kIGNsYXNzIFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3NGI4Y2JiN2I4YTY5YjczYjM5N2E5ZTlkMmJjYzBl
NzBiMTMxMTVmLi5hMDU4ODM0YjQ3OTcwZWIzYjY1MzY3MDIzYjE3NzFkYzU2ZWU2MGY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNCArMjUs
NSBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKICAgICBDcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQs
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlk
Q29uc3RyYWludHMpCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0
b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQorICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBp
ZCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gY2FwYWJpbGl0aWVzKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBkNGVlMWM0
ZWQ3Njk4YTgzZWZjY2VmNTdkOWNlY2UzNzU2YWZiNDliLi5lMGE4ZTVhNGNjM2Y5ZDU0M2IyMzY0
YTc0ZWIyNTI4ZWVhYjg3MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtNjYsOCArNjYs
MTUgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9y
YWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3Jp
bmdCdWZmZXIuc3RvcmFnZSgpKTsgfQotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxp
dGllczsgfQotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpIHsgbV9jYXBhYmlsaXRpZXMgPSBjYXBhYmls
aXRpZXM7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBmaW5hbCB7CisgICAgICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIGNhcGFiaWxpdGllcyA9IG1fbWFuYWdlci5jYXBhYmlsaXRpZXMobV9p
ZCkpCisgICAgICAgICAgICAgICAgbV9jYXBhYmlsaXRpZXMuZW1wbGFjZSgmY2FwYWJpbGl0aWVz
LnZhbHVlKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fY2FwYWJpbGl0
aWVzLmVtcGxhY2UobnVsbHB0cik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fY2FwYWJp
bGl0aWVzLnZhbHVlKCkuZ2V0KCk7CisgICAgfQogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7
IH0KICAgICB2b2lkIHNldFNldHRpbmdzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyYgc2V0dGluZ3MpCkBAIC0xMzEsNyArMTM4LDcgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90
IG1faWQ7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAg
bXV0YWJsZSBzdGQ6Om9wdGlvbmFsPHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPj4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIG1fc2V0dGluZ3M7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3Jp
cHRpb247CiAgICAgQ0FSaW5nQnVmZmVyIG1fcmluZ0J1ZmZlcjsKQEAgLTIzNCw2ICsyNDEsMTMg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0
X3QgaWQpCiAgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlN0b3BQcm9kdWNpbmdEYXRhKGlkKSwgMCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmNhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkKK3sKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllczsK
KyAgICBtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkNhcGFiaWxpdGllcyhpZCksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpDYXBhYmlsaXRpZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOworICAgIHJldHVy
biBjYXBhYmlsaXRpZXM7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXgg
NmEzMjY2NjJhNjM5NzY4NzI4OWI1NTU1NDFjYTNkZmJkYTYwN2ZjYy4uYmUxZTU1ODk3YWNiYmVk
NDg5MWVmYTVhNjZjNjI4NzlhYjA1YTVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzAsNiAr
NzAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3Qp
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVz
KHVpbnQ2NF90KTsKIAogICAgIGNsYXNzIFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3MgU291cmNl
Owo=
</data>
<flag name="review"
          id="328329"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307064</attachid>
            <date>2017-04-13 18:13:49 -0700</date>
            <delta_ts>2017-04-13 18:13:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170814-20170413181347.patch</filename>
            <type>text/plain</type>
            <size>43984</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uODNhMWJhNDE0OTUxOGEyZjA5Y2UyOGQ5YmQ2N2Zm
MTk3NTlkMTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRo
ZXJlJ3Mgbm8gcmVhbCByZWFzb24gZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMg
dG8gYmUgUmVmQ291bnRlZCBub3IgdG8ga2VlcCB0aGVtIGZyb20KKyAgICAgICAgYmVpbmcgY3Jl
YXRlZCBvbiB0aGUgc3RhY2suIFNvIGluIGFkZGl0aW9uIHRvIG1ha2luZyB0aGF0IGNsYXNzIGNv
ZGVyLWNvbXBsaWFudCwgY2hhbmdlIGFsbCB0aGUKKyAgICAgICAgY2xhc3NlcyB0aGF0IHZlbmQg
Y2FwYWJpbGl0aWVzIHRvIHVzZSBhIHVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mIGEgUmVmUHRyPD4u
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcGFiaWxpdHlWYWx1ZU9yUmFuZ2U6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnN1cHBvcnRlZENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnNldFN1cHBv
cnRlZENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW06CisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaDoKKwogMjAxNy0wNC0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIFN1cHBvcnQgcGFp
bnRpbmcgTVNFIHZpZGVvLWVsZW1lbnQgdG8gY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTU4OGQxZDdm
MTI3Zjk0ZGI3ZjE0MjIyYjQ3ZDA5ZGE0OTNmODk2Yy4uNmIwOTg2MjgwM2NhYmFiYmQ4N2E3OWZm
OTc2Y2RjMTY1ZjZmYTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTEz
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJj
ZV0gUHVzaCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJv
Y2VzcyBjYXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIE1ha2UgYSBuZXcgc3luY2hyb25vdXMgZ2V0dGVyIGZvciBjYXBhYmlsaXRpZXMoKSwgbW9k
ZXJhdGVkIGJ5IG9ubHkgcmVxdWVzdGluZyB0aGUgY2FwYWJpbGl0aWVzKCkgY3Jvc3MtcHJvY2Vz
cworICAgICAgICB0aGUgZmlyc3QgdGltZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN1cHBvcnRlZENvbnN0cmFpbnRz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTctMDQtMTIgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW5hbWUg
LVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmgKaW5kZXggMTY3MDAyYmUzMTVhNTNhYTkwMzUxNjRjN2Y1MjBlN2Y1YTU1NDExNy4u
YWQyNWFkZWE3MGE4ZGI2ODcxZDZiYjBhMDhhZWZkNjRmNzUxMGQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2suaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCkgIGZpbmFsOwogICAgICAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9Ci0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CisgICAgICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2FwYWJpbGl0aWVzKCk7IH0KICAgICAgICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3M7IH0KICAgICAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMDNlZDg3MmM3NTUwODBk
ODU2NmQ0OGU2ZThiOTBjNmRiZDg1YjExYS4uMzNhNDM1ODg2OThmMTc1NzY5NDBjYzM1ZWM0ZDY1
NjU0YWZhZDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0yMTYsMjggKzIxNiwyOCBAQCBNZWRpYVN0
cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2YXRlLT5jYXBh
YmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7Ci0gICAgaWYgKGNhcGFi
aWxpdGllcy0+c3VwcG9ydHNXaWR0aCgpKQotICAgICAgICByZXN1bHQud2lkdGggPSBjYXBhYmls
aXR5SW50UmFuZ2UoY2FwYWJpbGl0aWVzLT53aWR0aCgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVz
LT5zdXBwb3J0c0hlaWdodCgpKQotICAgICAgICByZXN1bHQuaGVpZ2h0ID0gY2FwYWJpbGl0eUlu
dFJhbmdlKGNhcGFiaWxpdGllcy0+aGVpZ2h0KCkpOwotICAgIGlmIChjYXBhYmlsaXRpZXMtPnN1
cHBvcnRzQXNwZWN0UmF0aW8oKSkKLSAgICAgICAgcmVzdWx0LmFzcGVjdFJhdGlvID0gY2FwYWJp
bGl0eURvdWJsZVJhbmdlKGNhcGFiaWxpdGllcy0+YXNwZWN0UmF0aW8oKSk7Ci0gICAgaWYgKGNh
cGFiaWxpdGllcy0+c3VwcG9ydHNGcmFtZVJhdGUoKSkKLSAgICAgICAgcmVzdWx0LmZyYW1lUmF0
ZSA9IGNhcGFiaWxpdHlEb3VibGVSYW5nZShjYXBhYmlsaXRpZXMtPmZyYW1lUmF0ZSgpKTsKLSAg
ICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c0ZhY2luZ01vZGUoKSkKLSAgICAgICAgcmVzdWx0
LmZhY2luZ01vZGUgPSBjYXBhYmlsaXR5U3RyaW5nVmVjdG9yKGNhcGFiaWxpdGllcy0+ZmFjaW5n
TW9kZSgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c1ZvbHVtZSgpKQotICAgICAg
ICByZXN1bHQudm9sdW1lID0gY2FwYWJpbGl0eURvdWJsZVJhbmdlKGNhcGFiaWxpdGllcy0+dm9s
dW1lKCkpOwotICAgIGlmIChjYXBhYmlsaXRpZXMtPnN1cHBvcnRzU2FtcGxlUmF0ZSgpKQotICAg
ICAgICByZXN1bHQuc2FtcGxlUmF0ZSA9IGNhcGFiaWxpdHlJbnRSYW5nZShjYXBhYmlsaXRpZXMt
PnNhbXBsZVJhdGUoKSk7Ci0gICAgaWYgKGNhcGFiaWxpdGllcy0+c3VwcG9ydHNTYW1wbGVTaXpl
KCkpCi0gICAgICAgIHJlc3VsdC5zYW1wbGVTaXplID0gY2FwYWJpbGl0eUludFJhbmdlKGNhcGFi
aWxpdGllcy0+c2FtcGxlU2l6ZSgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c0Vj
aG9DYW5jZWxsYXRpb24oKSkKLSAgICAgICAgcmVzdWx0LmVjaG9DYW5jZWxsYXRpb24gPSBjYXBh
YmlsaXR5Qm9vbGVhblZlY3RvcihjYXBhYmlsaXRpZXMtPmVjaG9DYW5jZWxsYXRpb24oKSk7Ci0g
ICAgaWYgKGNhcGFiaWxpdGllcy0+c3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBjYXBhYmlsaXRpZXMtPmRldmljZUlkKCk7Ci0gICAgaWYgKGNhcGFiaWxpdGll
cy0+c3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElkID0gY2FwYWJpbGl0
aWVzLT5ncm91cElkKCk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c1dpZHRoKCkpCisg
ICAgICAgIHJlc3VsdC53aWR0aCA9IGNhcGFiaWxpdHlJbnRSYW5nZShjYXBhYmlsaXRpZXMud2lk
dGgoKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0hlaWdodCgpKQorICAgICAgICBy
ZXN1bHQuaGVpZ2h0ID0gY2FwYWJpbGl0eUludFJhbmdlKGNhcGFiaWxpdGllcy5oZWlnaHQoKSk7
CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0FzcGVjdFJhdGlvKCkpCisgICAgICAgIHJl
c3VsdC5hc3BlY3RSYXRpbyA9IGNhcGFiaWxpdHlEb3VibGVSYW5nZShjYXBhYmlsaXRpZXMuYXNw
ZWN0UmF0aW8oKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0ZyYW1lUmF0ZSgpKQor
ICAgICAgICByZXN1bHQuZnJhbWVSYXRlID0gY2FwYWJpbGl0eURvdWJsZVJhbmdlKGNhcGFiaWxp
dGllcy5mcmFtZVJhdGUoKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0ZhY2luZ01v
ZGUoKSkKKyAgICAgICAgcmVzdWx0LmZhY2luZ01vZGUgPSBjYXBhYmlsaXR5U3RyaW5nVmVjdG9y
KGNhcGFiaWxpdGllcy5mYWNpbmdNb2RlKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3VwcG9y
dHNWb2x1bWUoKSkKKyAgICAgICAgcmVzdWx0LnZvbHVtZSA9IGNhcGFiaWxpdHlEb3VibGVSYW5n
ZShjYXBhYmlsaXRpZXMudm9sdW1lKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3VwcG9ydHNT
YW1wbGVSYXRlKCkpCisgICAgICAgIHJlc3VsdC5zYW1wbGVSYXRlID0gY2FwYWJpbGl0eUludFJh
bmdlKGNhcGFiaWxpdGllcy5zYW1wbGVSYXRlKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3Vw
cG9ydHNTYW1wbGVTaXplKCkpCisgICAgICAgIHJlc3VsdC5zYW1wbGVTaXplID0gY2FwYWJpbGl0
eUludFJhbmdlKGNhcGFiaWxpdGllcy5zYW1wbGVTaXplKCkpOworICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCisgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCisgICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IGNhcGFiaWxpdGllcy5kZXZpY2VJZCgpOworICAgIGlmIChj
YXBhYmlsaXRpZXMuc3VwcG9ydHNHcm91cElkKCkpCisgICAgICAgIHJlc3VsdC5ncm91cElkID0g
Y2FwYWJpbGl0aWVzLmdyb3VwSWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmNwcAppbmRleCBkNDcyMTkwNTY5ZGQ1ODFmYjM4YzlmODQ3NTY1OWFkNGVkZTE1NTE0
Li40ZmIzMmU5YjE4NmI4NDU0ZjY1ZjNmNWJmMmQ1YzRiNmYwNjVhYmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZS5jcHAKQEAgLTQ0LDEyICs0NCwxMiBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRp
YVN0cmVhbUF1ZGlvU291cmNlKCkKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
Citjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
dGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIy
NDMwCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBhYmlsaXRpZXMoKTsK
IH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IDllYzdjMjg3OGEz
NzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLmQxNWE2YWJhM2Y4MGQ3ODgzZWFlZWE4ZmM2
MWVjYzMwNmQzNDVlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBz
ZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0NzIzZjc1
OGM1ODA2MWQyYmQ1MWExNWQwYThiM2NiZi4uZDEzNzVmZDRjMDQxMzhkZmUxNjVjMzU0YjIxZWE5
YjU2MjVmYWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
ZW1wdHlTdHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2FwYWJpbGl0aWVzKCk7IH0KICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXgg
ZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uZDg3ZWU1ZjZlYTM5YzY1
MzgzMDU3NzZkOTBjZThlMDhhNDEzOWNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9z
b3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK2Nv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+Y2FwYWJp
bGl0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVjOWE5YzMy
OTBjZjkyYjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40ZDc4M2UwMjU0N2ZmY2U3NTU4MWJjNTg2Yzg1
ZjUyNmU4MzJlNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcgKzg3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKLSAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29u
c3Q7CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0
aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpGYWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
NDExYmE4MjkyMWEwZTI0ZWMyNDFmNWRlYWIyMzY3MjNlZDM1N2FhMS4uYjBkMjllMGY5M2NjZDBk
MGY0MGQyMWE5ZDNjMGI5YmFkYWY3ZWU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE4
NCw4ICsxODQsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzU2l6ZUFuZEZy
YW1lUmF0ZShzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+CiAgICAgaWYgKCF3aWR0aENvbnN0
cmFpbnQgJiYgIWhlaWdodENvbnN0cmFpbnQgJiYgIWZyYW1lUmF0ZUNvbnN0cmFpbnQpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgQVNTRVJUKHRoaXMtPmNhcGFiaWxpdGllcygpKTsKLSAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMgPSAqdGhpcy0+
Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVzID0gdGhpcy0+Y2FwYWJpbGl0
aWVzKCk7CiAKICAgICBkaXN0YW5jZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKTsKIApAQCAtMjQ0LDggKzI0Myw3IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4KIAog
ZG91YmxlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZpdG5lc3NEaXN0YW5jZShjb25zdCBNZWRpYUNv
bnN0cmFpbnQmIGNvbnN0cmFpbnQpCiB7Ci0gICAgQVNTRVJUKHRoaXMtPmNhcGFiaWxpdGllcygp
KTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMgPSAq
dGhpcy0+Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVzID0gdGhpcy0+Y2Fw
YWJpbGl0aWVzKCk7CiAKICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkg
ewogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6IHsKQEAgLTM4OCw3ICszODYs
NyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6
Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6bwogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiB7Ci0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzID0gKnRoaXMt
PmNhcGFiaWxpdGllcygpOworICAgIGF1dG8mIGNhcGFiaWxpdGllcyA9IHRoaXMtPmNhcGFiaWxp
dGllcygpOwogICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7CiAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDogewogICAgICAgICBBU1NFUlQoY29uc3Ry
YWludC5pc0ludCgpKTsKQEAgLTYxMiw4ICs2MTAsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBG
bAogCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludChjb25zdCBN
ZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHRoaXMtPmNh
cGFiaWxpdGllcygpKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBh
YmlsaXRpZXMgPSAqdGhpcy0+Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVz
ID0gdGhpcy0+Y2FwYWJpbGl0aWVzKCk7CiAKICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3Ry
YWludFR5cGUoKSkgewogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CkBAIC02
OTcsNyArNjk0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRz
KGNvbnN0IEZsYXR0ZW5lZENvbnN0cmFpbnQmIGNvbnN0cmFpbnQKIAogICAgIGJlZ2luQ29uZmln
dXJhdGlvbigpOwogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzID0gKnRoaXMtPmNhcGFiaWxpdGllcygpOworICAgIGF1dG8mIGNhcGFiaWxpdGllcyA9
IHRoaXMtPmNhcGFiaWxpdGllcygpOwogCiAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoOwog
ICAgIGlmIChjb25zdCBNZWRpYUNvbnN0cmFpbnQqIGNvbnN0cmFpbnQgPSBjb25zdHJhaW50cy5m
aW5kKE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4
IDA3YjAyMWY4NmQyMzFmZTIxNGI4ZDgxYmZmNDdhZTFjMjJmYmVkN2UuLjcwZDY1ZWZhOTZmMjJm
YjQ1ZGI3ZjRiM2U5NTVlZDNhNmNjOTFkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwNyw3
ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXRuZXNzU2Nv
cmUoKSBjb25zdCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0ID0gMDsKIAogICAgIHVzaW5nIFN1Y2Nl
c3NIYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKCk+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oCmluZGV4IDJmMjJkNDg5NGVkZTZlZTNmNmI4ZjY5YzI5NTBlMjcy
MjA5MzZlYWEuLjE0MWVkMTE5ZGRmNzE0NDc2OWYwZGNjZjJhNzAxMDRiNmNmODc0ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0xMDEsNTEgKzEwMiw3NyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZSYpOworCiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAgIFZhbHVl
VW5pb24gbV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2FwYWJpbGl0
eVZhbHVlT3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oJm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9u
KSk7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVl
VW5pb24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkKK3sKKyAg
ICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1
aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVVbmlvbiks
IGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5n
dGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9tYXgpLCBz
aXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpID0gZGVmYXVsdDsKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAgIDogbV9zdXBwb3J0
ZWRDb25zdHJhaW50cyhzdXBwb3J0ZWRDb25zdHJhaW50cykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhzdXBwb3J0ZWRD
b25zdHJhaW50cykpOwogICAgIH0KIAotICAgIH5SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzKCkgeyB9CisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoKSA9IGRlZmF1
bHQ7CisKKyAgICBzdGF0aWMgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
ZW1wdHlDYXBhYmlsaXRpZXMoKQorICAgIHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGVtcHR5Q2FwYWJpbGl0aWVzOworICAg
ICAgICByZXR1cm4gZW1wdHlDYXBhYmlsaXRpZXM7CisgICAgfQogCiAgICAgYm9vbCBzdXBwb3J0
c1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c1dp
ZHRoKCk7IH0KLSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB3aWR0aCgpIHsgcmV0
dXJuIG1fd2lkdGg7IH0KKyAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB3aWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICB2b2lkIHNldFdpZHRoKGNvbnN0IENhcGFi
aWxpdHlWYWx1ZU9yUmFuZ2UmIHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQogCiAgICAgYm9v
bCBzdXBwb3J0c0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMu
c3VwcG9ydHNIZWlnaHQoKTsgfQotICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIGhl
aWdodCgpIHsgcmV0dXJuIG1faGVpZ2h0OyB9CisgICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JS
YW5nZSYgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhl
aWdodChjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiBoZWlnaHQpIHsgbV9oZWlnaHQgPSBo
ZWlnaHQ7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBt
X3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzRnJhbWVSYXRlKCk7IH0KLSAgICBjb25zdCBD
YXBhYmlsaXR5VmFsdWVPclJhbmdlJiBmcmFtZVJhdGUoKSB7IHJldHVybiBtX2ZyYW1lUmF0ZTsg
fQorICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIGZyYW1lUmF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVSYXRlOyB9CiAgICAgdm9pZCBzZXRGcmFtZVJhdGUoY29uc3QgQ2FwYWJp
bGl0eVZhbHVlT3JSYW5nZSYgZnJhbWVSYXRlKSB7IG1fZnJhbWVSYXRlID0gZnJhbWVSYXRlOyB9
CiAKICAgICBib29sIHN1cHBvcnRzRmFjaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHMuc3VwcG9ydHNGYWNpbmdNb2RlKCk7IH0KLSAgICBjb25zdCBWZWN0b3I8
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU+JiBmYWNpbmdNb2Rl
KCkgeyByZXR1cm4gbV9mYWNpbmdNb2RlOyB9CisgICAgY29uc3QgVmVjdG9yPFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlPiYgZmFjaW5nTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZmFjaW5nTW9kZTsgfQogICAgIHZvaWQgYWRkRmFjaW5nTW9kZShSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZSBtb2RlKSB7IG1fZmFjaW5nTW9kZS5h
cHBlbmQobW9kZSk7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNBc3BlY3RSYXRpbygpIGNvbnN0IHsg
cmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc3VwcG9ydHNBc3BlY3RSYXRpbygpOyB9Ci0g
ICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgYXNwZWN0UmF0aW8oKSB7IHJldHVybiBt
X2FzcGVjdFJhdGlvOyB9CisgICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgYXNwZWN0
UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9CiAgICAgdm9pZCBzZXRBc3Bl
Y3RSYXRpbyhjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiBhc3BlY3RSYXRpbykgeyBtX2Fz
cGVjdFJhdGlvID0gYXNwZWN0UmF0aW87IH0KIAogICAgIGJvb2wgc3VwcG9ydHNWb2x1bWUoKSBj
b25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzVm9sdW1lKCk7IH0K
LSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB2b2x1bWUoKSB7IHJldHVybiBtX3Zv
bHVtZTsgfQorICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZvbHVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdm9sdW1lOyB9CiAgICAgdm9pZCBzZXRWb2x1bWUoY29uc3QgQ2FwYWJpbGl0
eVZhbHVlT3JSYW5nZSYgdm9sdW1lKSB7IG1fdm9sdW1lID0gdm9sdW1lOyB9CiAKICAgICBib29s
IHN1cHBvcnRzU2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWlu
dHMuc3VwcG9ydHNTYW1wbGVSYXRlKCk7IH0KLSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJiBzYW1wbGVSYXRlKCkgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisgICAgY29uc3QgQ2Fw
YWJpbGl0eVZhbHVlT3JSYW5nZSYgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxl
UmF0ZTsgfQogICAgIHZvaWQgc2V0U2FtcGxlUmF0ZShjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJiBzYW1wbGVSYXRlKSB7IG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7IH0KIAogICAgIGJv
b2wgc3VwcG9ydHNTYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJh
aW50cy5zdXBwb3J0c1NhbXBsZVNpemUoKTsgfQotICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UmIHNhbXBsZVNpemUoKSB7IHJldHVybiBtX3NhbXBsZVNpemU7IH0KKyAgICBjb25zdCBD
YXBhYmlsaXR5VmFsdWVPclJhbmdlJiBzYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zYW1w
bGVTaXplOyB9CiAgICAgdm9pZCBzZXRTYW1wbGVTaXplKGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UmIHNhbXBsZVNpemUpIHsgbV9zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTsgfQogCiAgICAg
ZW51bSBjbGFzcyBFY2hvQ2FuY2VsbGF0aW9uIHsKQEAgLTE1MywyMyArMTgwLDI0IEBAIHB1Ymxp
YzoKICAgICAgICAgUmVhZFdyaXRlID0gMSwKICAgICB9OwogICAgIGJvb2wgc3VwcG9ydHNFY2hv
Q2FuY2VsbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBw
b3J0c0VjaG9DYW5jZWxsYXRpb24oKTsgfQotICAgIEVjaG9DYW5jZWxsYXRpb24gZWNob0NhbmNl
bGxhdGlvbigpIHsgcmV0dXJuIG1fZWNob0NhbmNlbGxhdGlvbjsgfQorICAgIEVjaG9DYW5jZWxs
YXRpb24gZWNob0NhbmNlbGxhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWNob0NhbmNlbGxhdGlv
bjsgfQogICAgIHZvaWQgc2V0RWNob0NhbmNlbGxhdGlvbihFY2hvQ2FuY2VsbGF0aW9uIGVjaG9D
YW5jZWxsYXRpb24pIHsgbV9lY2hvQ2FuY2VsbGF0aW9uID0gZWNob0NhbmNlbGxhdGlvbjsgfQog
CiAgICAgYm9vbCBzdXBwb3J0c0RldmljZUlkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRD
b25zdHJhaW50cy5zdXBwb3J0c0RldmljZUlkKCk7IH0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGRldmljZUlkKCkgeyByZXR1cm4gbV9kZXZpY2VJZDsgfQorICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUlkOyB9CiAgICAgdm9pZCBzZXRE
ZXZpY2VJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSAgeyBtX2RldmljZUlkID0gaWQ7IH0KIAog
ICAgIGJvb2wgc3VwcG9ydHNHcm91cElkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25z
dHJhaW50cy5zdXBwb3J0c0dyb3VwSWQoKTsgfQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ3Jv
dXBJZCgpIHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ3Jv
dXBJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQogICAgIHZvaWQgc2V0R3JvdXBJZChj
b25zdCBBdG9taWNTdHJpbmcmIGlkKSAgeyBtX2dyb3VwSWQgPSBpZDsgfQogICAgIAotcHJpdmF0
ZToKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCi0gICAg
ICAgIDogbV9zdXBwb3J0ZWRDb25zdHJhaW50cyhzdXBwb3J0ZWRDb25zdHJhaW50cykKLSAgICB7
Ci0gICAgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0
cmFpbnRzOyB9CisgICAgdm9pZCBzZXRTdXBwb3J0ZWRDb25zdHJhaW50cyhjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKSB7IG1fc3VwcG9y
dGVkQ29uc3RyYWludHMgPSBjb25zdHJhaW50czsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpOworCitwcml2YXRlOgogICAgIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UgbV93
aWR0aDsKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1faGVpZ2h0OwogICAgIENhcGFiaWxp
dHlWYWx1ZU9yUmFuZ2UgbV9hc3BlY3RSYXRpbzsKQEAgLTE4Miw5ICsyMTAsNDMgQEAgcHJpdmF0
ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBBdG9taWNTdHJpbmcgbV9ncm91
cElkOwogCi0gICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
JiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3dpZHRoCisgICAg
ICAgIDw8IG1faGVpZ2h0CisgICAgICAgIDw8IG1fYXNwZWN0UmF0aW8KKyAgICAgICAgPDwgbV9m
cmFtZVJhdGUKKyAgICAgICAgPDwgbV9mYWNpbmdNb2RlCisgICAgICAgIDw8IG1fdm9sdW1lCisg
ICAgICAgIDw8IG1fc2FtcGxlUmF0ZQorICAgICAgICA8PCBtX3NhbXBsZVNpemUKKyAgICAgICAg
PDwgbV9kZXZpY2VJZAorICAgICAgICA8PCBtX2dyb3VwSWQKKyAgICAgICAgPDwgbV9zdXBwb3J0
ZWRDb25zdHJhaW50czsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9lY2hvQ2FuY2VsbGF0aW9u
KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKK3sKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUoY2FwYWJpbGl0aWVzLm1fd2lkdGgpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFi
aWxpdGllcy5tX2hlaWdodCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVz
Lm1fYXNwZWN0UmF0aW8pCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5t
X2ZyYW1lUmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZmFj
aW5nTW9kZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fdm9sdW1l
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVSYXRlKQor
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVTaXplKQorICAg
ICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9kZXZpY2VJZCkKKyAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZ3JvdXBJZCkKKyAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlRW51bShjYXBhYmlsaXRpZXMubV9lY2hvQ2FuY2VsbGF0aW9uKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCmluZGV4
IDVhNGM5YTUzNzdjMGIyY2Q1MmVmNDViNWIyNmY0YjYxYTE4M2E2NTQuLmUxZmQxNmY4NmMyNzZk
MTI2NTRiNTljYzI0OWUwOWZjYzAyNmJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBA
IC0xNTAsNiArMTUxLDIxIEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgUmVhbHRpbWVNZWRpYVNvdXJjZVNlCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdN
b2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGUsCisgICAgICAgIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpVbmtu
b3duLAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVv
RmFjaW5nTW9kZTo6VXNlciwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OkVudmlyb25tZW50LAorICAgICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6TGVmdCwKKyAgICAg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6
OlJpZ2h0CisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nc19oCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAppbmRleCBlZDEz
YjQyYmJhM2U4YjY4NzBhM2UyZTRjYWMyYWFmYTgzMTk1MWUwLi5mODQ5MDEwZjczOTM1ZTZjYzA0
YjVmNTFmYTBhMjdjY2RkNTk3YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaApAQCAt
ODQsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQVZDYXB0dXJlRGV2aWNlICpkZXZpY2UoKSBj
b25zdCB7IHJldHVybiBtX2RldmljZS5nZXQoKTsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpOwotICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBm
aW5hbDsKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxl
Z2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNldEF1ZGlvU2FtcGxl
QnVmZmVyRGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CkBAIC0xMDQsNyArMTA0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50
U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVk1lZGlhQ2FwdHVy
ZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJl
dGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPEFWQ2Fw
dHVyZURldmljZT4gbV9kZXZpY2U7CiAgICAgSW50ZXJydXB0aW9uUmVhc29uIG1faW50ZXJydXB0
aW9uIHsgSW50ZXJydXB0aW9uUmVhc29uOjpOb25lIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KaW5kZXggNWZlZjQ0ZmM3MTc4MjgyZTA5OWI5NDNiNzRiMzE2ODk4NTgyMGRjYS4uZTk5
Yzc4NDliZTgzMjM5YWNiM2I1YzM1MDJlN2UzZTlkODkyN2YwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5tbQpAQCAtMjI5LDE3ICsyMjksMTcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3VwcG9ydGVkQ29uc3Ry
YWkKIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGllcygp
CiB7Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpjcmVhdGUoc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBz
dGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KHN1cHBvcnRl
ZENvbnN0cmFpbnRzKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChpZCgpKTsK
IAogICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKIH0K
IAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWTWVkaWFDYXB0dXJl
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKICAgICAgICAgY29uc3RfY2FzdDxBVk1lZGlhQ2Fw
dHVyZVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7Ci0gICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiB9CiAKIHZvaWQg
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2EzZDRm
ZmQ4ZC4uNzg4YTIyMmY1NDA0ZTAyNmI5MjNkNTU0NmJmNjgxMGU1ZGNjOWMyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NTdGF0
dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwogfQog
Ci1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
CiB7CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRp
ZXM7CisgICAgICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiAKICAgICBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CiAgICAgbV9zdXBwb3J0ZWRDb25z
dHJhaW50cy5zZXRTdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24odHJ1ZSk7CiAgICAgbV9zdXBwb3J0
ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c1ZvbHVtZSh0cnVlKTsKIAogICAgIC8vIEZJWE1FOiBm
aW5pc2ggdGhpcy4KLSAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM6OmNyZWF0ZShtX3N1cHBvcnRlZENvbnN0cmFpbnRzKTsKKyAgICBtX2NhcGFiaWxp
dGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4o
bV9zdXBwb3J0ZWRDb25zdHJhaW50cyk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldERldmljZUlk
KGlkKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRFY2hvQ2FuY2VsbGF0aW9uKFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxsYXRpb246OlJlYWRXcml0ZSk7CiAg
ICAgbV9jYXBhYmlsaXRpZXMtPnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDAuMCwg
MS4wKSk7CiAKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuICptX2NhcGFi
aWxpdGllczsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2UuaAppbmRleCA2Njc2OGJlN2I2M2E2NGZlYjFkYWI1ZDU4MmRlNTNlMGFiYTM5M2NjLi5h
NWY1Mjk3NDk0OTFkNjViMzcxZWZjZjkzODg1YWE0Y2M5Yjk0MTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1
cyBzdXNwZW5kKCk7CiAgICAgT1NTdGF0dXMgcmVzdW1lKCk7CiAKLSAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7Cisg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgT1NTdGF0dXMgc2V0dXBBdWRpb1VuaXRzKCk7CkBA
IC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBMb2NrIG1fcGVuZGluZ1NvdXJjZVF1ZXVl
TG9jazsKICAgICBMb2NrIG1faW50ZXJuYWxTdGF0ZUxvY2s7CiAKLSAgICBtdXRhYmxlIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBt
X2NhcGFiaWxpdGllczsKICAgICBtdXRhYmxlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGVjZmQ3OGU0M2E1MzJmMmRjNmEzNjc0ZjkzNzEy
NzEwYzNkODU0ZjAuLmE0ZjliMzhhZTJhMjhiN2Q3MDc5ZWM3M2FkYzg0YWZkODVkMzQ4MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC0xNDAsOSAr
MTQwLDkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZVRyYWNr
KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGkKICAgICAgICAgbV9hdWRpb1RyYWNrLT5B
ZGRTaW5rKHRoaXMpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGll
czsKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBh
YmlsaXRpZXMoKTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAppbmRleCA3ZGRiZjIyMjMwMGQ2YjlmZTIzYzk2OTE4
ZjRlYTcyNzVkNmMxMjJlLi44NTJjZTk3ZjIyOTNlYzkzMDFiNzQxODBlZTdhYzU5MWIyMzVjZDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNv
bnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkg
eyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KQEAgLTczLDcgKzczLDYgQEAgcHJpdmF0
ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
bV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWlu
dHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gbV9hdWRpb1RyYWNrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAppbmRleCBkYjlmZDA5ZGMx
MDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFmLi5mNTA5NmZiMGYwYTA2MWQ0NTljMTFhZDJm
MTEwNmRmMTM1M2JhMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgdW5zCiAgICAg
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlLCBy
b3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsK
KyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBhYmls
aXRpZXMoKTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2UuaAppbmRleCAzYmUwZDU0ZjMzYjA4MGFmMjVlNmZkOWIwNWUy
NDViNWFlMjU4N2YxLi40MmY5MjZmNDFjYWMwYzE4ZDg0ZmNmNGYyZDZiOTQwNWZlOWUwYjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0
IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyBy
ZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KQEAgLTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8SW1hZ2U+IG1fY3VycmVudEltYWdlOwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5n
RGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFj
a0ludGVyZmFjZT4gbV92aWRlb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VPd3IuaAppbmRleCBhOGY3OGUyMjIzNWUwMGNmNDQxYzkwZGIzNWVjZGQ0N2VmYmM5
ZjAyLi42ZmVlMjcxNDg5ZjhlYzIwMGU5MzkzZDA2YzgyOTMwYzRlZTZlYWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaApAQCAtNzIsNyArNzIsNyBAQCBS
ZWFsdGltZU1lZGlhU291cmNlT3dyKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QgUwogICAgICAgICBzZXRNdXRlZChmYWxzZSk7CiAgICAgfQog
Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyogY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gY29uc3RfY2FzdDxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKj4oJm1f
Y2FwYWJpbGl0aWVzKTsgfQogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE93ck1lZGlhU291cmNlKiBtZWRpYVNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KQEAgLTg2LDcgKzg2LDcgQEAg
cHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIE93ck1lZGlhU291cmNlKiBt
X21lZGlhU291cmNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA3NzkwY2U5ZTJiOTVkNWFl
ZTM2YzE3NTg1MWEzZmY5ODI5MWUxY2M4Li43NTk1Y2ZjNTNiZGNiYmY4Y2IzNDhmMmM2YjQ3ZDdh
ZmU4ZjQ4OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtODMsMTYgKzgzLDE2IEBAIE1vY2tSZWFs
dGltZU1lZGlhU291cmNlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlk
LCBSZWFsdGltZU1lZGlhCiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmluaXRpYWxp
emVDYXBhYmlsaXRpZXMoKQogewotICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKHN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOworICAgIG1f
Y2FwYWJpbGl0aWVzID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPihzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBtX2NhcGFiaWxpdGllcy0+c2V0
RGV2aWNlSWQoaWQoKSk7CiAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygqbV9jYXBhYmlsaXRp
ZXMuZ2V0KCkpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0Citjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2Fw
YWJpbGl0aWVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKQogICAgICAgICBj
b25zdF9jYXN0PE1vY2tSZWFsdGltZU1lZGlhU291cmNlJj4oKnRoaXMpLmluaXRpYWxpemVDYXBh
YmlsaXRpZXMoKTsKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuICptX2Nh
cGFiaWxpdGllczsKIH0KIAogdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5pdGlhbGl6
ZVNldHRpbmdzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCBjZGMzMzFkOTgyMGFlMGJlMTUxOTg4NTlmMTY5
ZDZkZjQ0OWY0N2EyLi45YTVhZDFkMjA0ODIwNGUwMDUyYmI1ZDY1N2UyNjI4NTZjMWJjYWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBv
dmVycmlkZTsKIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBj
YXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0
cmFpbnRzLmdldCgpOyB9CkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2Nh
cGFiaWxpdGllczsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsK
ICAgICB1bnNpZ25lZCBtX2RldmljZUluZGV4IHsgMCB9OwogICAgIGJvb2wgbV9pc1Byb2R1Y2lu
Z0RhdGEgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGM2Zjdh
ZTlhYzQ2NmNlZGU0YzkyYjNiYjg3ZDk1Y2I0ODZmYTI5YjEuLmY4M2ZjYzdhMWU2NzBjOTNjODFj
MTJjNWU5YWFjMmFmNmM4YzFhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAg
LTEzMCw3ICsxMzAsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgIGF1dG8gY29uc3Ry
YWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKGNvbnN0cmFpbnRzRGF0YSk7CiAg
ICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5h
dWRpb0ZhY3RvcnkoKS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGRldmljZSwgY29uc3RyYWludHMucHRyKCksIGludmFsaWRDb25zdHJhaW50cyk7CiAg
ICAgc3VjY2VlZGVkID0gISFzb3VyY2U7Ci0gICAgCisKICAgICBpZiAoc291cmNlKQogICAgICAg
ICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRo
aXMsIHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiB9CkBAIC0xNDksNiArMTQ5LDEzIEBAIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0RhdGEodWludDY0
X3QgaWQpCiAgICAgICAgIGl0ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0YSgp
OwogfQogCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyh1
aW50NjRfdCBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2Fw
YWJpbGl0aWVzKQoreworICAgIGF1dG8gaXRlciA9IG1fcHJveGllcy5maW5kKGlkKTsKKyAgICBp
ZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCisgICAgICAgIGNhcGFiaWxpdGllcyA9IGl0ZXIt
PnZhbHVlLT5zb3VyY2UoKS5jYXBhYmlsaXRpZXMoKTsKK30KKyAgICAKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA4MTEzMjFkYmFjYTA0NzVlZDQ3OWYyYmJmYmIz
NWU1NjY0ZDhmNmQyLi5kYzVmZWYxODBjZjdiZTQ3YWEyY2M2YTNjOTEwNGJiZTQ2NjVkNTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1
aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50cyk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAg
IHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIHZvaWQgY2FwYWJpbGl0aWVz
KHVpbnQ2NF90LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJik7CiAK
ICAgICBjbGFzcyBTb3VyY2VQcm94eTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlUHJveHk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDc0YjhjYmI3
YjhhNjliNzNiMzk3YTllOWQyYmNjMGU3MGIxMzExNWYuLjZjN2Q4MTMyZDIzYTA4ODVkYzZkZDdl
MGMwODhmZmE3OWFjMjBiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yNSw0ICsyNSw1IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkgewogICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIHN0
cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wg
c3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKICAgICBTdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCisgICAg
Q2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4
IGQ0ZWUxYzRlZDc2OThhODNlZmNjZWY1N2Q5Y2VjZTM3NTZhZmI0OWIuLjIzZTk5N2U2YWQ0MzYx
ZGVhMGM4ZTVkZDhlODZjNzZkMDcxZjcwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC02
Niw4ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmIHN0b3JhZ2UoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZSY+KG1fcmluZ0J1ZmZlci5zdG9yYWdlKCkpOyB9Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzOyB9Ci0gICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcykgeyBtX2NhcGFiaWxpdGllcyA9
IGNhcGFiaWxpdGllczsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsKKyAgICAgICAgaWYgKCFtX2NhcGFiaWxp
dGllcykKKyAgICAgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gbV9tYW5hZ2VyLmNhcGFiaWxpdGll
cyhtX2lkKTsKKyAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7CisgICAgfQog
CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICB2b2lkIHNldFNldHRpbmdzKGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCkBAIC0xMzEsNyArMTM0LDcg
QEAgcHJpdmF0ZToKIAogICAgIHVpbnQ2NF90IG1faWQ7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1fbWFuYWdlcjsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX2Rlc2NyaXB0aW9uOwogICAgIENBUmluZ0J1ZmZlciBtX3JpbmdCdWZmZXI7CkBAIC0yMzQs
NiArMjM3LDEzIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnN0b3BQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90IGlkKQogICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTdG9wUHJvZHVjaW5nRGF0YShpZCksIDApOwogfQogCitXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkKK3sKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBtX3Byb2Nlc3Muc2Vu
ZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNhcGFiaWxpdGll
cyhpZCksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDYXBhYmlsaXRp
ZXM6OlJlcGx5KGNhcGFiaWxpdGllcyksIDApOworICAgIHJldHVybiBXVEZNb3ZlKGNhcGFiaWxp
dGllcyk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNmEzMjY2NjJh
NjM5NzY4NzI4OWI1NTU1NDFjYTNkZmJkYTYwN2ZjYy4uYmQyZWY0MzhmNzZhMDBkYjY2MjhkYzk5
YzA5MDI4YjlkZGZhY2RhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNzAsNiArNzAsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QpOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXModWludDY0X3QpOwogCiAgICAgY2xh
c3MgU291cmNlOwogICAgIGZyaWVuZCBjbGFzcyBTb3VyY2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307113</attachid>
            <date>2017-04-14 08:08:06 -0700</date>
            <delta_ts>2017-04-14 09:04:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170814-20170414080802.patch</filename>
            <type>text/plain</type>
            <size>43943</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkNTdlMWRlOTg4MzVi
NjJmMjM2ZjhlY2Y1NGVkNTMxNTdhZjc4NS4uODNhMWJhNDE0OTUxOGEyZjA5Y2UyOGQ5YmQ2N2Zm
MTk3NTlkMTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTA0LTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJjZV0gUHVz
aCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJvY2VzcyBj
YXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRo
ZXJlJ3Mgbm8gcmVhbCByZWFzb24gZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMg
dG8gYmUgUmVmQ291bnRlZCBub3IgdG8ga2VlcCB0aGVtIGZyb20KKyAgICAgICAgYmVpbmcgY3Jl
YXRlZCBvbiB0aGUgc3RhY2suIFNvIGluIGFkZGl0aW9uIHRvIG1ha2luZyB0aGF0IGNsYXNzIGNv
ZGVyLWNvbXBsaWFudCwgY2hhbmdlIGFsbCB0aGUKKyAgICAgICAgY2xhc3NlcyB0aGF0IHZlbmQg
Y2FwYWJpbGl0aWVzIHRvIHVzZSBhIHVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mIGEgUmVmUHRyPD4u
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNhcGFiaWxp
dGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcGFiaWxpdHlWYWx1ZU9yUmFuZ2U6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnN1cHBvcnRlZENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OnNldFN1cHBv
cnRlZENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW06CisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRp
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1l
ZGlhU291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaDoKKwogMjAxNy0wNC0xMSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXVtNYWNdIFN1cHBvcnQgcGFp
bnRpbmcgTVNFIHZpZGVvLWVsZW1lbnQgdG8gY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTU4OGQxZDdm
MTI3Zjk0ZGI3ZjE0MjIyYjQ3ZDA5ZGE0OTNmODk2Yy4uNmIwOTg2MjgwM2NhYmFiYmQ4N2E3OWZm
OTc2Y2RjMTY1ZjZmYTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTEz
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVNvdXJj
ZV0gUHVzaCBjYXBhYmlsaXRpZXMgYWNyb3NzIHByb2Nlc3MgYm91bmRhcnkgZHVyaW5nIFVJUHJv
Y2VzcyBjYXB0dXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIE1ha2UgYSBuZXcgc3luY2hyb25vdXMgZ2V0dGVyIGZvciBjYXBhYmlsaXRpZXMoKSwgbW9k
ZXJhdGVkIGJ5IG9ubHkgcmVxdWVzdGluZyB0aGUgY2FwYWJpbGl0aWVzKCkgY3Jvc3MtcHJvY2Vz
cworICAgICAgICB0aGUgZmlyc3QgdGltZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN1cHBvcnRlZENvbnN0cmFpbnRz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6U291cmNlOjpzZXRDYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTctMDQtMTIgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSByZW5hbWUg
LVtXS1dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmgKaW5kZXggMTY3MDAyYmUzMTVhNTNhYTkwMzUxNjRjN2Y1MjBlN2Y1YTU1NDExNy4u
YWQyNWFkZWE3MGE4ZGI2ODcxZDZiYjBhMDhhZWZkNjRmNzUxMGQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2suaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCkgIGZpbmFsOwogICAgICAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9Ci0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxscHRyOyB9CisgICAgICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2FwYWJpbGl0aWVzKCk7IH0KICAgICAgICAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2V0dGluZ3M7IH0KICAgICAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggMDNlZDg3MmM3NTUwODBk
ODU2NmQ0OGU2ZThiOTBjNmRiZDg1YjExYS4uMzNhNDM1ODg2OThmMTc1NzY5NDBjYzM1ZWM0ZDY1
NjU0YWZhZDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0yMTYsMjggKzIxNiwyOCBAQCBNZWRpYVN0
cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2YXRlLT5jYXBh
YmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7Ci0gICAgaWYgKGNhcGFi
aWxpdGllcy0+c3VwcG9ydHNXaWR0aCgpKQotICAgICAgICByZXN1bHQud2lkdGggPSBjYXBhYmls
aXR5SW50UmFuZ2UoY2FwYWJpbGl0aWVzLT53aWR0aCgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVz
LT5zdXBwb3J0c0hlaWdodCgpKQotICAgICAgICByZXN1bHQuaGVpZ2h0ID0gY2FwYWJpbGl0eUlu
dFJhbmdlKGNhcGFiaWxpdGllcy0+aGVpZ2h0KCkpOwotICAgIGlmIChjYXBhYmlsaXRpZXMtPnN1
cHBvcnRzQXNwZWN0UmF0aW8oKSkKLSAgICAgICAgcmVzdWx0LmFzcGVjdFJhdGlvID0gY2FwYWJp
bGl0eURvdWJsZVJhbmdlKGNhcGFiaWxpdGllcy0+YXNwZWN0UmF0aW8oKSk7Ci0gICAgaWYgKGNh
cGFiaWxpdGllcy0+c3VwcG9ydHNGcmFtZVJhdGUoKSkKLSAgICAgICAgcmVzdWx0LmZyYW1lUmF0
ZSA9IGNhcGFiaWxpdHlEb3VibGVSYW5nZShjYXBhYmlsaXRpZXMtPmZyYW1lUmF0ZSgpKTsKLSAg
ICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c0ZhY2luZ01vZGUoKSkKLSAgICAgICAgcmVzdWx0
LmZhY2luZ01vZGUgPSBjYXBhYmlsaXR5U3RyaW5nVmVjdG9yKGNhcGFiaWxpdGllcy0+ZmFjaW5n
TW9kZSgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c1ZvbHVtZSgpKQotICAgICAg
ICByZXN1bHQudm9sdW1lID0gY2FwYWJpbGl0eURvdWJsZVJhbmdlKGNhcGFiaWxpdGllcy0+dm9s
dW1lKCkpOwotICAgIGlmIChjYXBhYmlsaXRpZXMtPnN1cHBvcnRzU2FtcGxlUmF0ZSgpKQotICAg
ICAgICByZXN1bHQuc2FtcGxlUmF0ZSA9IGNhcGFiaWxpdHlJbnRSYW5nZShjYXBhYmlsaXRpZXMt
PnNhbXBsZVJhdGUoKSk7Ci0gICAgaWYgKGNhcGFiaWxpdGllcy0+c3VwcG9ydHNTYW1wbGVTaXpl
KCkpCi0gICAgICAgIHJlc3VsdC5zYW1wbGVTaXplID0gY2FwYWJpbGl0eUludFJhbmdlKGNhcGFi
aWxpdGllcy0+c2FtcGxlU2l6ZSgpKTsKLSAgICBpZiAoY2FwYWJpbGl0aWVzLT5zdXBwb3J0c0Vj
aG9DYW5jZWxsYXRpb24oKSkKLSAgICAgICAgcmVzdWx0LmVjaG9DYW5jZWxsYXRpb24gPSBjYXBh
YmlsaXR5Qm9vbGVhblZlY3RvcihjYXBhYmlsaXRpZXMtPmVjaG9DYW5jZWxsYXRpb24oKSk7Ci0g
ICAgaWYgKGNhcGFiaWxpdGllcy0+c3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBjYXBhYmlsaXRpZXMtPmRldmljZUlkKCk7Ci0gICAgaWYgKGNhcGFiaWxpdGll
cy0+c3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElkID0gY2FwYWJpbGl0
aWVzLT5ncm91cElkKCk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c1dpZHRoKCkpCisg
ICAgICAgIHJlc3VsdC53aWR0aCA9IGNhcGFiaWxpdHlJbnRSYW5nZShjYXBhYmlsaXRpZXMud2lk
dGgoKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0hlaWdodCgpKQorICAgICAgICBy
ZXN1bHQuaGVpZ2h0ID0gY2FwYWJpbGl0eUludFJhbmdlKGNhcGFiaWxpdGllcy5oZWlnaHQoKSk7
CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0FzcGVjdFJhdGlvKCkpCisgICAgICAgIHJl
c3VsdC5hc3BlY3RSYXRpbyA9IGNhcGFiaWxpdHlEb3VibGVSYW5nZShjYXBhYmlsaXRpZXMuYXNw
ZWN0UmF0aW8oKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0ZyYW1lUmF0ZSgpKQor
ICAgICAgICByZXN1bHQuZnJhbWVSYXRlID0gY2FwYWJpbGl0eURvdWJsZVJhbmdlKGNhcGFiaWxp
dGllcy5mcmFtZVJhdGUoKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0ZhY2luZ01v
ZGUoKSkKKyAgICAgICAgcmVzdWx0LmZhY2luZ01vZGUgPSBjYXBhYmlsaXR5U3RyaW5nVmVjdG9y
KGNhcGFiaWxpdGllcy5mYWNpbmdNb2RlKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3VwcG9y
dHNWb2x1bWUoKSkKKyAgICAgICAgcmVzdWx0LnZvbHVtZSA9IGNhcGFiaWxpdHlEb3VibGVSYW5n
ZShjYXBhYmlsaXRpZXMudm9sdW1lKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3VwcG9ydHNT
YW1wbGVSYXRlKCkpCisgICAgICAgIHJlc3VsdC5zYW1wbGVSYXRlID0gY2FwYWJpbGl0eUludFJh
bmdlKGNhcGFiaWxpdGllcy5zYW1wbGVSYXRlKCkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc3Vw
cG9ydHNTYW1wbGVTaXplKCkpCisgICAgICAgIHJlc3VsdC5zYW1wbGVTaXplID0gY2FwYWJpbGl0
eUludFJhbmdlKGNhcGFiaWxpdGllcy5zYW1wbGVTaXplKCkpOworICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCisgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCisgICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IGNhcGFiaWxpdGllcy5kZXZpY2VJZCgpOworICAgIGlmIChj
YXBhYmlsaXRpZXMuc3VwcG9ydHNHcm91cElkKCkpCisgICAgICAgIHJlc3VsdC5ncm91cElkID0g
Y2FwYWJpbGl0aWVzLmdyb3VwSWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmNwcAppbmRleCBkNDcyMTkwNTY5ZGQ1ODFmYjM4YzlmODQ3NTY1OWFkNGVkZTE1NTE0
Li40ZmIzMmU5YjE4NmI4NDU0ZjY1ZjNmNWJmMmQ1YzRiNmYwNjVhYmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZS5jcHAKQEAgLTQ0LDEyICs0NCwxMiBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRp
YVN0cmVhbUF1ZGlvU291cmNlKCkKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
Citjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
dGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIy
NDMwCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBhYmlsaXRpZXMoKTsK
IH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCmluZGV4IDllYzdjMjg3OGEz
NzE0YTMxMzYzNWU5ODAxMWIxOGU4ZjJhZDAyYjguLmQxNWE2YWJhM2Y4MGQ3ODgzZWFlZWE4ZmM2
MWVjYzMwNmQzNDVlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlKCkgeyB9CiAKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7
CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVz
KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBz
ZXR0aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggZTZmZGMyMDI0NzIzZjc1
OGM1ODA2MWQyYmQ1MWExNWQwYThiM2NiZi4uZDEzNzVmZDRjMDQxMzhkZmUxNjVjMzU0YjIxZWE5
YjU2MjVmYWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
ZW1wdHlTdHJpbmcoKSwgVHlwZTo6Tm9uZSwgZW1wdHlTdHJpbmcoKSkgeyB9CiAKLSAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2FwYWJpbGl0aWVzKCk7IH0KICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zb3VyY2VTZXR0aW5nczsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIG1fc291cmNlU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXgg
ZDRjMmRiMTIzNmM5ZGNlZDNhYTA2ZWUzMzVmN2RlZDc4NGMwN2NhYy4uZDg3ZWU1ZjZlYTM5YzY1
MzgzMDU3NzZkOTBjZThlMDhhNDEzOWNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cApAQCAtMTM2LDcgKzEzNiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldHRpbmdzKCkgY29uc3QKICAgICByZXR1cm4gbV9z
b3VyY2UtPnNldHRpbmdzKCk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK2Nv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBtX3NvdXJjZS0+Y2FwYWJp
bGl0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCA2OTliYzVjOWE5YzMy
OTBjZjkyYjA1MmVkZWE5OTI5ZGNjNTBmMTZmLi40ZDc4M2UwMjU0N2ZmY2U3NTU4MWJjNTg2Yzg1
ZjUyNmU4MzJlNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTg3LDcgKzg3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdDsKLSAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29u
c3Q7CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0
aWVzKCkgY29uc3Q7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25z
dHJhaW50cyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlN1Y2Nlc3NIYW5kbGVyLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpGYWlsdXJlSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
NDExYmE4MjkyMWEwZTI0ZWMyNDFmNWRlYWIyMzY3MjNlZDM1N2FhMS4uYjBkMjllMGY5M2NjZDBk
MGY0MGQyMWE5ZDNjMGI5YmFkYWY3ZWU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE4
NCw4ICsxODQsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzU2l6ZUFuZEZy
YW1lUmF0ZShzdGQ6Om9wdGlvbmFsPEludENvbnN0cmFpbnQ+CiAgICAgaWYgKCF3aWR0aENvbnN0
cmFpbnQgJiYgIWhlaWdodENvbnN0cmFpbnQgJiYgIWZyYW1lUmF0ZUNvbnN0cmFpbnQpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgQVNTRVJUKHRoaXMtPmNhcGFiaWxpdGllcygpKTsKLSAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMgPSAqdGhpcy0+
Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVzID0gdGhpcy0+Y2FwYWJpbGl0
aWVzKCk7CiAKICAgICBkaXN0YW5jZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKTsKIApAQCAtMjQ0LDggKzI0Myw3IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8SW50Q29uc3RyYWludD4KIAog
ZG91YmxlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmZpdG5lc3NEaXN0YW5jZShjb25zdCBNZWRpYUNv
bnN0cmFpbnQmIGNvbnN0cmFpbnQpCiB7Ci0gICAgQVNTRVJUKHRoaXMtPmNhcGFiaWxpdGllcygp
KTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMgPSAq
dGhpcy0+Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVzID0gdGhpcy0+Y2Fw
YWJpbGl0aWVzKCk7CiAKICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3RyYWludFR5cGUoKSkg
ewogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6IHsKQEAgLTM4OCw3ICszODYs
NyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFwcGx5U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6
Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6bwogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OmFwcGx5Q29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpCiB7Ci0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzID0gKnRoaXMt
PmNhcGFiaWxpdGllcygpOworICAgIGF1dG8mIGNhcGFiaWxpdGllcyA9IHRoaXMtPmNhcGFiaWxp
dGllcygpOwogICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25zdHJhaW50VHlwZSgpKSB7CiAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aDogewogICAgICAgICBBU1NFUlQoY29uc3Ry
YWludC5pc0ludCgpKTsKQEAgLTYxMiw4ICs2MTAsNyBAQCBib29sIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBG
bAogCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzQ29uc3RyYWludChjb25zdCBN
ZWRpYUNvbnN0cmFpbnQmIGNvbnN0cmFpbnQpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHRoaXMtPmNh
cGFiaWxpdGllcygpKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBh
YmlsaXRpZXMgPSAqdGhpcy0+Y2FwYWJpbGl0aWVzKCk7CisgICAgYXV0byYgY2FwYWJpbGl0aWVz
ID0gdGhpcy0+Y2FwYWJpbGl0aWVzKCk7CiAKICAgICBzd2l0Y2ggKGNvbnN0cmFpbnQuY29uc3Ry
YWludFR5cGUoKSkgewogICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6CkBAIC02
OTcsNyArNjk0LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphcHBseUNvbnN0cmFpbnRz
KGNvbnN0IEZsYXR0ZW5lZENvbnN0cmFpbnQmIGNvbnN0cmFpbnQKIAogICAgIGJlZ2luQ29uZmln
dXJhdGlvbigpOwogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJp
bGl0aWVzID0gKnRoaXMtPmNhcGFiaWxpdGllcygpOworICAgIGF1dG8mIGNhcGFiaWxpdGllcyA9
IHRoaXMtPmNhcGFiaWxpdGllcygpOwogCiAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoOwog
ICAgIGlmIChjb25zdCBNZWRpYUNvbnN0cmFpbnQqIGNvbnN0cmFpbnQgPSBjb25zdHJhaW50cy5m
aW5kKE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4
IDA3YjAyMWY4NmQyMzFmZTIxNGI4ZDgxYmZmNDdhZTFjMjJmYmVkN2UuLjcwZDY1ZWZhOTZmMjJm
YjQ1ZGI3ZjRiM2U5NTVlZDNhNmNjOTFkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwNyw3
ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB1bnNpZ25lZCBmaXRuZXNzU2Nv
cmUoKSBjb25zdCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0ID0gMDsKIAogICAgIHVzaW5nIFN1Y2Nl
c3NIYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKCk+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcy5oCmluZGV4IDJmMjJkNDg5NGVkZTZlZTNmNmI4ZjY5YzI5NTBlMjcy
MjA5MzZlYWEuLjE0MWVkMTE5ZGRmNzE0NDc2OWYwZGNjZjJhNzAxMDRiNmNmODc0ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0xMDEsNTEgKzEwMiw3NyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX21pbk9yVmFsdWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ2FwYWJpbGl0eVZhbHVlT3JSYW5n
ZSYpOworCiBwcml2YXRlOgogICAgIFZhbHVlVW5pb24gbV9taW5PclZhbHVlOwogICAgIFZhbHVl
VW5pb24gbV9tYXg7CiAgICAgVHlwZSBtX3R5cGU7CiB9OwogCi1jbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gewordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ2FwYWJpbGl0
eVZhbHVlT3JSYW5nZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oJm1fbWluT3JWYWx1ZSksIHNpemVvZihWYWx1ZVVuaW9uKSwgYWxpZ25vZihWYWx1ZVVuaW9u
KSk7CisgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oJm1fbWF4KSwgc2l6ZW9mKFZhbHVlVW5pb24pLCBhbGlnbm9mKFZhbHVl
VW5pb24pKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZhbHVlT3JSYW5nZSkKK3sKKyAg
ICByZXR1cm4gZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRlcnByZXRfY2FzdDx1
aW50OF90Kj4oJnZhbHVlT3JSYW5nZS5tX21pbk9yVmFsdWUpLCBzaXplb2YoVmFsdWVVbmlvbiks
IGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlRml4ZWRMZW5n
dGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZU9yUmFuZ2UubV9tYXgpLCBz
aXplb2YoVmFsdWVVbmlvbiksIGFsaWdub2YoVmFsdWVVbmlvbikpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlRW51bSh2YWx1ZU9yUmFuZ2UubV90eXBlKTsKK30KKworY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY3JlYXRlKGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcygpID0gZGVmYXVsdDsKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAgIDogbV9zdXBwb3J0
ZWRDb25zdHJhaW50cyhzdXBwb3J0ZWRDb25zdHJhaW50cykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyhzdXBwb3J0ZWRD
b25zdHJhaW50cykpOwogICAgIH0KIAotICAgIH5SZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzKCkgeyB9CisgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMoKSA9IGRlZmF1
bHQ7CisKKyAgICBzdGF0aWMgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
ZW1wdHlDYXBhYmlsaXRpZXMoKQorICAgIHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGVtcHR5Q2FwYWJpbGl0aWVzOworICAg
ICAgICByZXR1cm4gZW1wdHlDYXBhYmlsaXRpZXM7CisgICAgfQogCiAgICAgYm9vbCBzdXBwb3J0
c1dpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c1dp
ZHRoKCk7IH0KLSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB3aWR0aCgpIHsgcmV0
dXJuIG1fd2lkdGg7IH0KKyAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB3aWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICB2b2lkIHNldFdpZHRoKGNvbnN0IENhcGFi
aWxpdHlWYWx1ZU9yUmFuZ2UmIHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQogCiAgICAgYm9v
bCBzdXBwb3J0c0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMu
c3VwcG9ydHNIZWlnaHQoKTsgfQotICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIGhl
aWdodCgpIHsgcmV0dXJuIG1faGVpZ2h0OyB9CisgICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JS
YW5nZSYgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KICAgICB2b2lkIHNldEhl
aWdodChjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiBoZWlnaHQpIHsgbV9oZWlnaHQgPSBo
ZWlnaHQ7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBt
X3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzRnJhbWVSYXRlKCk7IH0KLSAgICBjb25zdCBD
YXBhYmlsaXR5VmFsdWVPclJhbmdlJiBmcmFtZVJhdGUoKSB7IHJldHVybiBtX2ZyYW1lUmF0ZTsg
fQorICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIGZyYW1lUmF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVSYXRlOyB9CiAgICAgdm9pZCBzZXRGcmFtZVJhdGUoY29uc3QgQ2FwYWJp
bGl0eVZhbHVlT3JSYW5nZSYgZnJhbWVSYXRlKSB7IG1fZnJhbWVSYXRlID0gZnJhbWVSYXRlOyB9
CiAKICAgICBib29sIHN1cHBvcnRzRmFjaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHMuc3VwcG9ydHNGYWNpbmdNb2RlKCk7IH0KLSAgICBjb25zdCBWZWN0b3I8
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU+JiBmYWNpbmdNb2Rl
KCkgeyByZXR1cm4gbV9mYWNpbmdNb2RlOyB9CisgICAgY29uc3QgVmVjdG9yPFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlPiYgZmFjaW5nTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZmFjaW5nTW9kZTsgfQogICAgIHZvaWQgYWRkRmFjaW5nTW9kZShSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZSBtb2RlKSB7IG1fZmFjaW5nTW9kZS5h
cHBlbmQobW9kZSk7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNBc3BlY3RSYXRpbygpIGNvbnN0IHsg
cmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc3VwcG9ydHNBc3BlY3RSYXRpbygpOyB9Ci0g
ICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgYXNwZWN0UmF0aW8oKSB7IHJldHVybiBt
X2FzcGVjdFJhdGlvOyB9CisgICAgY29uc3QgQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSYgYXNwZWN0
UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9CiAgICAgdm9pZCBzZXRBc3Bl
Y3RSYXRpbyhjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiBhc3BlY3RSYXRpbykgeyBtX2Fz
cGVjdFJhdGlvID0gYXNwZWN0UmF0aW87IH0KIAogICAgIGJvb2wgc3VwcG9ydHNWb2x1bWUoKSBj
b25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzVm9sdW1lKCk7IH0K
LSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJhbmdlJiB2b2x1bWUoKSB7IHJldHVybiBtX3Zv
bHVtZTsgfQorICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UmIHZvbHVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdm9sdW1lOyB9CiAgICAgdm9pZCBzZXRWb2x1bWUoY29uc3QgQ2FwYWJpbGl0
eVZhbHVlT3JSYW5nZSYgdm9sdW1lKSB7IG1fdm9sdW1lID0gdm9sdW1lOyB9CiAKICAgICBib29s
IHN1cHBvcnRzU2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWlu
dHMuc3VwcG9ydHNTYW1wbGVSYXRlKCk7IH0KLSAgICBjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJiBzYW1wbGVSYXRlKCkgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CisgICAgY29uc3QgQ2Fw
YWJpbGl0eVZhbHVlT3JSYW5nZSYgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxl
UmF0ZTsgfQogICAgIHZvaWQgc2V0U2FtcGxlUmF0ZShjb25zdCBDYXBhYmlsaXR5VmFsdWVPclJh
bmdlJiBzYW1wbGVSYXRlKSB7IG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7IH0KIAogICAgIGJv
b2wgc3VwcG9ydHNTYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJh
aW50cy5zdXBwb3J0c1NhbXBsZVNpemUoKTsgfQotICAgIGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UmIHNhbXBsZVNpemUoKSB7IHJldHVybiBtX3NhbXBsZVNpemU7IH0KKyAgICBjb25zdCBD
YXBhYmlsaXR5VmFsdWVPclJhbmdlJiBzYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zYW1w
bGVTaXplOyB9CiAgICAgdm9pZCBzZXRTYW1wbGVTaXplKGNvbnN0IENhcGFiaWxpdHlWYWx1ZU9y
UmFuZ2UmIHNhbXBsZVNpemUpIHsgbV9zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTsgfQogCiAgICAg
ZW51bSBjbGFzcyBFY2hvQ2FuY2VsbGF0aW9uIHsKQEAgLTE1MywyMyArMTgwLDI0IEBAIHB1Ymxp
YzoKICAgICAgICAgUmVhZFdyaXRlID0gMSwKICAgICB9OwogICAgIGJvb2wgc3VwcG9ydHNFY2hv
Q2FuY2VsbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBw
b3J0c0VjaG9DYW5jZWxsYXRpb24oKTsgfQotICAgIEVjaG9DYW5jZWxsYXRpb24gZWNob0NhbmNl
bGxhdGlvbigpIHsgcmV0dXJuIG1fZWNob0NhbmNlbGxhdGlvbjsgfQorICAgIEVjaG9DYW5jZWxs
YXRpb24gZWNob0NhbmNlbGxhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWNob0NhbmNlbGxhdGlv
bjsgfQogICAgIHZvaWQgc2V0RWNob0NhbmNlbGxhdGlvbihFY2hvQ2FuY2VsbGF0aW9uIGVjaG9D
YW5jZWxsYXRpb24pIHsgbV9lY2hvQ2FuY2VsbGF0aW9uID0gZWNob0NhbmNlbGxhdGlvbjsgfQog
CiAgICAgYm9vbCBzdXBwb3J0c0RldmljZUlkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRD
b25zdHJhaW50cy5zdXBwb3J0c0RldmljZUlkKCk7IH0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGRldmljZUlkKCkgeyByZXR1cm4gbV9kZXZpY2VJZDsgfQorICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZGV2aWNlSWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUlkOyB9CiAgICAgdm9pZCBzZXRE
ZXZpY2VJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSAgeyBtX2RldmljZUlkID0gaWQ7IH0KIAog
ICAgIGJvb2wgc3VwcG9ydHNHcm91cElkKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25z
dHJhaW50cy5zdXBwb3J0c0dyb3VwSWQoKTsgfQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ3Jv
dXBJZCgpIHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZ3Jv
dXBJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQogICAgIHZvaWQgc2V0R3JvdXBJZChj
b25zdCBBdG9taWNTdHJpbmcmIGlkKSAgeyBtX2dyb3VwSWQgPSBpZDsgfQogICAgIAotcHJpdmF0
ZToKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzKGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpCi0gICAg
ICAgIDogbV9zdXBwb3J0ZWRDb25zdHJhaW50cyhzdXBwb3J0ZWRDb25zdHJhaW50cykKLSAgICB7
Ci0gICAgfQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0
cmFpbnRzOyB9CisgICAgdm9pZCBzZXRTdXBwb3J0ZWRDb25zdHJhaW50cyhjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKSB7IG1fc3VwcG9y
dGVkQ29uc3RyYWludHMgPSBjb25zdHJhaW50czsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpOworCitwcml2YXRlOgogICAgIENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UgbV93
aWR0aDsKICAgICBDYXBhYmlsaXR5VmFsdWVPclJhbmdlIG1faGVpZ2h0OwogICAgIENhcGFiaWxp
dHlWYWx1ZU9yUmFuZ2UgbV9hc3BlY3RSYXRpbzsKQEAgLTE4Miw5ICsyMTAsNDMgQEAgcHJpdmF0
ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZXZpY2VJZDsKICAgICBBdG9taWNTdHJpbmcgbV9ncm91
cElkOwogCi0gICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
JiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3dpZHRoCisgICAg
ICAgIDw8IG1faGVpZ2h0CisgICAgICAgIDw8IG1fYXNwZWN0UmF0aW8KKyAgICAgICAgPDwgbV9m
cmFtZVJhdGUKKyAgICAgICAgPDwgbV9mYWNpbmdNb2RlCisgICAgICAgIDw8IG1fdm9sdW1lCisg
ICAgICAgIDw8IG1fc2FtcGxlUmF0ZQorICAgICAgICA8PCBtX3NhbXBsZVNpemUKKyAgICAgICAg
PDwgbV9kZXZpY2VJZAorICAgICAgICA8PCBtX2dyb3VwSWQKKyAgICAgICAgPDwgbV9zdXBwb3J0
ZWRDb25zdHJhaW50czsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9lY2hvQ2FuY2VsbGF0aW9u
KTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKK3sKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUoY2FwYWJpbGl0aWVzLm1fd2lkdGgpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFi
aWxpdGllcy5tX2hlaWdodCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVz
Lm1fYXNwZWN0UmF0aW8pCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNhcGFiaWxpdGllcy5t
X2ZyYW1lUmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZmFj
aW5nTW9kZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fdm9sdW1l
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVSYXRlKQor
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9zYW1wbGVTaXplKQorICAg
ICAgICAmJiBkZWNvZGVyLmRlY29kZShjYXBhYmlsaXRpZXMubV9kZXZpY2VJZCkKKyAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fZ3JvdXBJZCkKKyAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoY2FwYWJpbGl0aWVzLm1fc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlRW51bShjYXBhYmlsaXRpZXMubV9lY2hvQ2FuY2VsbGF0aW9uKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCmluZGV4
IDVhNGM5YTUzNzdjMGIyY2Q1MmVmNDViNWIyNmY0YjYxYTE4M2E2NTQuLmUxZmQxNmY4NmMyNzZk
MTI2NTRiNTljYzI0OWUwOWZjYzAyNmJhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgorI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBA
IC0xNTAsNiArMTUxLDIxIEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgUmVhbHRpbWVNZWRpYVNvdXJjZVNlCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdN
b2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGUsCisgICAgICAgIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VmlkZW9GYWNpbmdNb2RlOjpVbmtu
b3duLAorICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVv
RmFjaW5nTW9kZTo6VXNlciwKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OkVudmlyb25tZW50LAorICAgICAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6TGVmdCwKKyAgICAg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6
OlJpZ2h0CisgICAgPjsKK307CisKK30KKwogI2VuZGlmIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nc19oCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAppbmRleCBlZDEz
YjQyYmJhM2U4YjY4NzBhM2UyZTRjYWMyYWFmYTgzMTk1MWUwLi5mODQ5MDEwZjczOTM1ZTZjYzA0
YjVmNTFmYTBhMjdjY2RkNTk3YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaApAQCAt
ODQsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQVZDYXB0dXJlRGV2aWNlICpkZXZpY2UoKSBj
b25zdCB7IHJldHVybiBtX2RldmljZS5nZXQoKTsgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpOwotICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBm
aW5hbDsKKyAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxl
Z2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNldEF1ZGlvU2FtcGxl
QnVmZmVyRGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CkBAIC0xMDQsNyArMTA0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50
U2V0dGluZ3M7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVk1lZGlhQ2FwdHVy
ZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJl
dGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPEFWQ2Fw
dHVyZURldmljZT4gbV9kZXZpY2U7CiAgICAgSW50ZXJydXB0aW9uUmVhc29uIG1faW50ZXJydXB0
aW9uIHsgSW50ZXJydXB0aW9uUmVhc29uOjpOb25lIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW0KaW5kZXggNWZlZjQ0ZmM3MTc4MjgyZTA5OWI5NDNiNzRiMzE2ODk4NTgyMGRjYS4uZTk5
Yzc4NDliZTgzMjM5YWNiM2I1YzM1MDJlN2UzZTlkODkyN2YwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZS5tbQpAQCAtMjI5LDE3ICsyMjksMTcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3VwcG9ydGVkQ29uc3Ry
YWkKIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGllcygp
CiB7Ci0gICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpjcmVhdGUoc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBz
dGQ6Om1ha2VfdW5pcXVlPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+KHN1cHBvcnRl
ZENvbnN0cmFpbnRzKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXREZXZpY2VJZChpZCgpKTsK
IAogICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKIH0K
IAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWTWVkaWFDYXB0dXJl
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKICAgICAgICAgY29uc3RfY2FzdDxBVk1lZGlhQ2Fw
dHVyZVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7Ci0gICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOworICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiB9CiAKIHZvaWQg
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHAKaW5kZXggMjljNzAxMTQzOGM1MDQ0YWNiYWYyZTZlYWJlNzk5M2EzZDRm
ZmQ4ZC4uNzg4YTIyMmY1NDA0ZTAyNmI5MjNkNTU0NmJmNjgxMGU1ZGNjOWMyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNDg4LDIyICs0ODgsMjIgQEAgT1NTdGF0
dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cmVzdW1lKCkKICAgICByZXR1cm4gZXJyOwogfQog
Ci1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
CiB7CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRp
ZXM7CisgICAgICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiAKICAgICBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CiAgICAgbV9zdXBwb3J0ZWRDb25z
dHJhaW50cy5zZXRTdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24odHJ1ZSk7CiAgICAgbV9zdXBwb3J0
ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c1ZvbHVtZSh0cnVlKTsKIAogICAgIC8vIEZJWE1FOiBm
aW5pc2ggdGhpcy4KLSAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM6OmNyZWF0ZShtX3N1cHBvcnRlZENvbnN0cmFpbnRzKTsKKyAgICBtX2NhcGFiaWxp
dGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4o
bV9zdXBwb3J0ZWRDb25zdHJhaW50cyk7CiAgICAgbV9jYXBhYmlsaXRpZXMtPnNldERldmljZUlk
KGlkKCkpOwogICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRFY2hvQ2FuY2VsbGF0aW9uKFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxsYXRpb246OlJlYWRXcml0ZSk7CiAg
ICAgbV9jYXBhYmlsaXRpZXMtPnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDAuMCwg
MS4wKSk7CiAKLSAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CisgICAgcmV0dXJuICptX2NhcGFi
aWxpdGllczsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2UuaAppbmRleCA2Njc2OGJlN2I2M2E2NGZlYjFkYWI1ZDU4MmRlNTNlMGFiYTM5M2NjLi5h
NWY1Mjk3NDk0OTFkNjViMzcxZWZjZjkzODg1YWE0Y2M5Yjk0MTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1
cyBzdXNwZW5kKCk7CiAgICAgT1NTdGF0dXMgcmVzdW1lKCk7CiAKLSAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7Cisg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IGZpbmFsOwogCiAgICAgT1NTdGF0dXMgc2V0dXBBdWRpb1VuaXRzKCk7CkBA
IC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBMb2NrIG1fcGVuZGluZ1NvdXJjZVF1ZXVl
TG9jazsKICAgICBMb2NrIG1faW50ZXJuYWxTdGF0ZUxvY2s7CiAKLSAgICBtdXRhYmxlIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKKyAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBt
X2NhcGFiaWxpdGllczsKICAgICBtdXRhYmxlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGVjZmQ3OGU0M2E1MzJmMmRjNmEzNjc0ZjkzNzEy
NzEwYzNkODU0ZjAuLmE0ZjliMzhhZTJhMjhiN2Q3MDc5ZWM3M2FkYzg0YWZkODVkMzQ4MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC0xNDAsOSAr
MTQwLDkgQEAgdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZVRyYWNr
KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGkKICAgICAgICAgbV9hdWRpb1RyYWNrLT5B
ZGRTaW5rKHRoaXMpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGll
czsKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBh
YmlsaXRpZXMoKTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAppbmRleCA3ZGRiZjIyMjMwMGQ2YjlmZTIzYzk2OTE4
ZjRlYTcyNzVkNmMxMjJlLi44NTJjZTk3ZjIyOTNlYzkzMDFiNzQxODBlZTdhYzU5MWIyMzVjZDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNv
bnN0IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGlu
Z3MoKSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkg
eyByZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KQEAgLTczLDcgKzczLDYgQEAgcHJpdmF0
ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
bV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWlu
dHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gbV9hdWRpb1RyYWNrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAppbmRleCBkYjlmZDA5ZGMx
MDNmY2M5MjcxZmNmM2RhYTVhMzM2YjFlZTk1ZDFmLi5mNTA5NmZiMGYwYTA2MWQ0NTljMTFhZDJm
MTEwNmRmMTM1M2JhMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlOjpwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgdW5zCiAgICAg
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlLCBy
b3RhdGlvbikpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsK
KyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBhYmls
aXRpZXMoKTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2UuaAppbmRleCAzYmUwZDU0ZjMzYjA4MGFmMjVlNmZkOWIwNWUy
NDViNWFlMjU4N2YxLi40MmY5MjZmNDFjYWMwYzE4ZDg0ZmNmNGYyZDZiOTQwNWZlOWUwYjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgIGZpbmFsOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFsOworICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0
IGZpbmFsOwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKCkgeyBy
ZXR1cm4gKm1fY29uc3RyYWludHMuZ2V0KCk7IH0KQEAgLTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8SW1hZ2U+IG1fY3VycmVudEltYWdlOwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3Vw
cG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5n
RGF0YSB7IGZhbHNlIH07CiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFj
a0ludGVyZmFjZT4gbV92aWRlb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VPd3IuaAppbmRleCBhOGY3OGUyMjIzNWUwMGNmNDQxYzkwZGIzNWVjZGQ0N2VmYmM5
ZjAyLi4zYWUzNzYyN2E4ODA1NGE3OTBjMTk3MDY0N2I1NGJjZmRjMmFkMTU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaApAQCAtNzIsNyArNzIsNyBAQCBS
ZWFsdGltZU1lZGlhU291cmNlT3dyKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QgUwogICAgICAgICBzZXRNdXRlZChmYWxzZSk7CiAgICAgfQog
Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBPd3JNZWRp
YVNvdXJjZSogbWVkaWFTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkBA
IC04Niw3ICs4Niw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKLSAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKICAgICBP
d3JNZWRpYVNvdXJjZSogbV9tZWRpYVNvdXJjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXgg
Nzc5MGNlOWUyYjk1ZDVhZWUzNmMxNzU4NTFhM2ZmOTgyOTFlMWNjOC4uNzU5NWNmYzUzYmRjYmJm
OGNiMzQ4ZjJjNmI0N2Q3YWZlOGY0ODhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTgzLDE2ICs4
MywxNiBAQCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYQogCiB2b2lkIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKCkKIHsKLSAgICBtX2NhcGFiaWxpdGllcyA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZShzdXBwb3J0ZWRDb25zdHJh
aW50cygpKTsKKyAgICBtX2NhcGFiaWxpdGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4oc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAgICAgbV9j
YXBhYmlsaXRpZXMtPnNldERldmljZUlkKGlkKCkpOwogICAgIGluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMoKSBj
b25zdAorY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NhcGFiaWxp
dGllcykKICAgICAgICAgY29uc3RfY2FzdDxNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSY+KCp0aGlz
KS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwor
ICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2U6OmluaXRpYWxpemVTZXR0aW5ncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggY2RjMzMxZDk4MjBh
ZTBiZTE1MTk4ODU5ZjE2OWQ2ZGY0NDlmNDdhMi4uOWE1YWQxZDIwNDgyMDRlMDA1MmJiNWQ2NTdl
MjYyODU2YzFiY2FhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNjgsNyArNjgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQ
cm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSB7
IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQpAQCAtODgsNyArODgsNyBAQCBwcml2YXRl
OgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENv
bnN0cmFpbnRzOwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBt
X2NhcGFiaWxpdGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IG1fY29uc3RyYWludHM7CiAgICAgdW5zaWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKICAgICBi
b29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcAppbmRleCBjNmY3YWU5YWM0NjZjZWRlNGM5MmIzYmI4N2Q5NWNiNDg2ZmEyOWIxLi5mODNm
Y2M3YTFlNjcwYzkzYzgxYzEyYzVlOWFhYzJhZjZjOGMxYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkK
ICAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25z
dHJhaW50c0RhdGEpOwogICAgIGF1dG8gc291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2UsIGNvbnN0cmFpbnRzLnB0cigpLCBpbnZhbGlk
Q29uc3RyYWludHMpOwogICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlOwotICAgIAorCiAgICAgaWYg
KHNvdXJjZSkKICAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOwogfQpAQCAtMTQ5
LDYgKzE0OSwxMyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3Rv
cFByb2R1Y2luZ0RhdGEoKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKK3sKKyAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMu
ZmluZChpZCk7CisgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQorICAgICAgICBjYXBh
YmlsaXRpZXMgPSBpdGVyLT52YWx1ZS0+c291cmNlKCkuY2FwYWJpbGl0aWVzKCk7Cit9CisgICAg
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggODExMzIxZGJhY2Ew
NDc1ZWQ0NzlmMmJiZmJiMzVlNTY2NGQ4ZjZkMi4uZGM1ZmVmMTgwY2Y3YmU0N2FhMmNjNmEzYzkx
MDRiYmU0NjY1ZDU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRlZCwg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2
b2lkIGNhcGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpOwogCiAgICAgY2xhc3MgU291cmNlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNz
IFNvdXJjZVByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3NGI4Y2JiN2I4YTY5YjczYjM5N2E5ZTlkMmJjYzBlNzBiMTMxMTVmLi42YzdkODEz
MmQyM2EwODg1ZGM2ZGQ3ZTBjMDg4ZmZhNzlhYzIwYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNCArMjUsNSBAQCBtZXNzYWdlcyAtPiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKICAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3Ry
YWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCiAgICAg
U3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90IGlkKQorICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCBkNGVlMWM0ZWQ3Njk4YTgzZWZjY2VmNTdkOWNlY2UzNzU2YWZiNDli
Li4yM2U5OTdlNmFkNDM2MWRlYTBjOGU1ZGQ4ZTg2Yzc2ZDA3MWY3MDE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcApAQCAtNjYsOCArNjYsMTEgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXIuc3RvcmFnZSgpKTsgfQotICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQotICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVz
KFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpIHsg
bV9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXM7IH0KKyAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbCB7CisgICAgICAg
IGlmICghbV9jYXBhYmlsaXRpZXMpCisgICAgICAgICAgICBtX2NhcGFiaWxpdGllcyA9IG1fbWFu
YWdlci5jYXBhYmlsaXRpZXMobV9pZCk7CisgICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy52
YWx1ZSgpOworICAgIH0KIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
c2V0dGluZ3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBz
ZXRTZXR0aW5ncyhjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQpA
QCAtMTMxLDcgKzEzNCw3IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX2lkOwogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIG11dGFibGUgc3RkOjpv
cHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKICAgICBDQVJpbmdCdWZmZXIgbV9yaW5n
QnVmZmVyOwpAQCAtMjM0LDYgKzIzNywxMyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBtX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEoaWQp
LCAwKTsKIH0KIAorV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXBhYmlsaXRpZXModWludDY0X3QgaWQpCit7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7Cisg
ICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDYXBhYmlsaXRpZXMoaWQpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q2FwYWJpbGl0aWVzOjpSZXBseShjYXBhYmlsaXRpZXMpLCAwKTsKKyAgICByZXR1cm4g
V1RGTW92ZShjYXBhYmlsaXRpZXMpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
CmluZGV4IDZhMzI2NjYyYTYzOTc2ODcyODliNTU1NTQxY2EzZGZiZGE2MDdmY2MuLmJkMmVmNDM4
Zjc2YTAwZGI2NjI4ZGM5OWMwOTAyOGI5ZGRmYWNkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAg
LTcwLDYgKzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVp
bnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAgICBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKHVpbnQ2
NF90KTsKIAogICAgIGNsYXNzIFNvdXJjZTsKICAgICBmcmllbmQgY2xhc3MgU291cmNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>